jQueryオートコンプリートプラグインを使用しています。jQueryオートコンプリート:リターンを押すとフォームが送信されます
// I'm not sure if there's a better way to do this
var base_url = window.location.href.slice(0, window.location.href.indexOf('/bar'));
$('.foo-widget').find('input:first-child').autocomplete(base_url + "/api/baz?format=newline");
マークアップ:
<ul class="foo-widget">
<li>
<input value="" autocomplete="off" class="ac_input"><input value="" autocomplete="off" class="ac_input"><button>Add</button>
</li>
</ul>
これが正常に動作します。しかし、オートコンプリートの結果から項目を選択するために「入力」を押すと、フォームが送信されます。なぜこれが起こっているのでしょうか?
私はjquery.autocomplete.jsに見て、次が実行されていることを見た:
case KEY.RETURN:
if(selectCurrent()) {
// stop default to prevent a form submit, Opera needs special handling
event.preventDefault();
blockSubmit = true;
return false;
}
break;
べきではないevent.preventDefault()
とblockSubmit = true
提出からフォームを停止しますか?ページ上の別の場所にあるJSコードが干渉している可能性はありますか?
preventDefault()コードに到達する前に別のjavascriptエラーが発生している可能性があります。 Firebugはエラーを表示しますか? –
falseはfalseを返します。 – Luke
そのページにはいくつの書式がありますか? –