入力テキストがあり、アイテムを提案するための先行入力プラグインを適用しますが、入力テキストで Enter キーを押すと、フォームが送信されます。
twitter ブートストラップ typeahead プラグインを使用してフォーム送信を防ぐにはどうすればよいですか?
入力テキストがあり、アイテムを提案するための先行入力プラグインを適用しますが、入力テキストで Enter キーを押すと、フォームが送信されます。
twitter ブートストラップ typeahead プラグインを使用してフォーム送信を防ぐにはどうすればよいですか?
ID を追加し、Enter の keydown イベントを次のように削除するだけで、その特定の入力をターゲットにすることができます。
JS
$(document).ready(function() {
$('form input').keydown(function(event){
if(event.keyCode == 13) {
event.preventDefault();
return false;
}
});
});
おそらく typeahead プラグインを更新したため、最初の答えはうまくいきませんでしたが、typehead によって作成された「代替」入力を使用して問題を解決しました。
$(".twitter-typeahead > input").focus(function(){
//disable btn when focusing the input
$("#my_submit_button").prop('disabled', true);
}).blur(function(){
//enable btn when bluring the input
$("#my_submit_button").prop('disabled', false);
});
私は自分のプロジェクトで CodeIgniter とブートストラップを使用して同じ問題を抱えており、ここで解決策を見つけて動作します。
onsubmit="return false;"
次のように、フォームに追加するだけです。
<form id="frmcrud" method="post" onsubmit="return false;">
これにアプローチするために私が見つけた最良の方法は、送信入力を使用しないことです。代わりにボタン入力を使用し、いくつかの js を追加して、クリックされたときにフォームを送信します。
$('#my_submit_button').click(function(){
$(this).parents('form').submit();
});