我已經構建了一個偵聽器來防止表單在特殊的情況下提交。防止表單提交輸入密鑰keydown?
我使用谷歌地圖自動完成api,基本上我不想提交表單,當用戶按下輸入和「推薦結果框」顯示。當用戶按下回車鍵從下拉框中選擇一個值,而不是提交表單。
我已經構建了一個偵聽器來正確捕獲事件,但我不知道如何阻止提交表單。
$('body').live('keydown', function(e) {
if($(".pac-container").is(":visible") && event.keyCode == 13) {
e.preventDefault(); // Prevent form submission
}
});
我試過用e.preventDefault();但它仍然提交表格。表單ID是:updateAccountForm
我該如何防止它發生?
編輯: 我必須指出,直接在搜索輸入上聆聽按鍵衝突似乎與Google API衝突導致自動完成功能無效。因此,沒有$('input#search')
的keydown /按鍵可以
'e.stopPropagation()'和/或'return false;'之後,解決問題? – 2012-08-10 08:50:27
nope,我只是試過 – lisovaccaro 2012-08-10 08:59:26
我現在看到你在身體上增加了監聽器。所以鍵入事件在輸入提交後被觸發。嘗試查看'.bind'並查看第三個參數'preventBubble'(我不確定,現在我無法測試它)。否則,我認爲你應該在輸入字段中附加監聽器,或者在表單上附加提交監聽器。 – 2012-08-10 09:11:04