2015-05-07 58 views
0

preventDefault()我想防止默認,所以我可以做其他事情。爲了看看它是否有效,我添加了一個警報。爲什麼當我添加一個警報()默認行爲返回後,在jquery

HTML/jQuery的:

<p><label for="value_new">Add </label><input class="suggest noSubmit" id="value_new" type="text" /></p> 

$(document).on("keydown",".noSubmit", 
    function() { 
      if(event.keyCode == 13) { 
       event.preventDefault();    
       //return false; 
       alert("it worked"); 
      } 
    } 
); 

但是當我關閉警告,表單被提交。如果我使用console.log("it worked")代替,則表單未提交。

我的警報是否被解釋爲默認操作的確認?如果是這樣,爲什麼?

+2

功能需要採取類似的功能的情況下(事件){...} – tabz100

+0

@ tabz100好點,但我看到沒有或沒有'event'的行爲沒有區別,這仍然不能解釋爲什麼alert()會改變行爲。它可能是別的嗎? –

回答

2

您需要包括事件作爲參數傳遞給你的函數

$(document).on("keydown",".noSubmit", 
    function(event) { 
      if(event.keyCode == 13) { 
       event.preventDefault();    
       //return false; 
       alert("it worked"); 
      } 
    } 
); 
+0

沒有區別。同樣的確切行爲。 –

+0

@ButtleButkus你可以發佈你的HTML,所以我可以看看? – tabz100

+0

@ tabz100我添加了目標html。還有其他的jquery功能在頁面上工作,所以有可能是其他的干擾。你知道爲什麼從函數中添加/刪除'event'不會有什麼區別,而alert()呢? –

2

你忘了在事件傳遞給你的函數:

$(document).on("keydown",".noSubmit", 
    function(event) { 
      if(event.keyCode == 13) { 
       event.preventDefault();    
       //return false; 
       alert("it worked"); 
      } 
    } 
); 
+0

有趣的是,爲什麼當我不提醒時,它會工作? –

+0

而且,當我添加到函數中時,我會得到相同的結果。除非有警報,否則不會發生提交。 –

相關問題