我想在文本區域中按回車鍵后立即提交表單,這對輸入型別文本作業正常,但是,我不知道如何在文本區域中執行此操作。我必須使用文本區域,因為我希望文本輸入可以擴展,我該如何讓它作業?謝謝
<div ng-app="myApp" ng-controller="myCtrl">
<form ng-submit="sendMessage(newMessageContent)">
First Name: <input type="text" ng-model="firstName"><br>
Last Name: <input type="text" ng-model="lastName"><br>
<br>
Full Name: {{firstName " " lastName}}
<textarea id="typeMessageBox" placeholder="Write here and hit enter to send..." type="text submit" class="form-control-lg form-control" ng-model="newMessageContent"></textarea>
</form>
</div>
uj5u.com熱心網友回復:
您可以使用以下 jQuery 代碼Enter在您的 textarea 中點擊時提交您的表單:
$("#typeMessageBox").keypress(function (e) {
if (e.which === 13 && !e.shiftKey) {
e.preventDefault();
$(this).closest("form").submit();
}
});
也就是說,這可能不是一個好主意。如果您想要一個可擴展的欄位,那肯定是因為您將有幾行文本,因此幾乎可以肯定是換行符。
我強烈建議您添加幫助文本,說明您將在輸入時提交表單Enter,因為您的用戶會對這種行為感到非常驚訝。
更好的是:不要試圖改變原生行為。textarea 像這樣作業是有充分理由的,每個人都習慣了。改變它的行為對你來說似乎是個好主意,但你可能會失去你的用戶。
uj5u.com熱心網友回復:
您可以使用 ng-keypress 然后檢查 keypress 是否等于 enter 然后呼叫提交表單功能
在你的 textarea 上應該是
<textarea ng-keypress="getkeys($event)" ng-model="newMessageContent"></textarea>
那么你的角度代碼應該是
$scope.getkeys = function (event) {
if(event.keyCode == 13){
$scope.sendMessage( $scope.newMessageContent );
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/312560.html
標籤:javascript html 查询 angularjs
