簡體   English   中英

在“提交”按鈕上意外提交

[英]Unexpected submit on “submit” button click

如果我將“提交”按鈕設為活動狀態(帶有“ Tab”按鈕),然后按Enter ,則按鍵處理程序將觸發,並在按鈕上生成click事件。 但是OnClick和Submit處理程序將不會觸發。 它只會以靜默方式發布表單。 為什么?

<script src="../js/jquery.js" type="text/javascript"></script>
<script type="application/javascript">

$().ready(function(){
     $("#f1").keypress(function(event) {
          if (event.keyCode==13){
            var currentInputId = $(event)[0].target.id;
            var currentInput = $('#'+currentInputId);
            currentInput.click();
            return false;
          }
      });


  $("#f1").submit(function(){
   alert ("huy")
  })
})
</script>
<form name="f1" id="f1" method="POST">
<input type="text">
<input type="submit" onclick="return false;" id="submit">
</form>

從頭開始重寫答案

在我的機器上,您的情況發生了什么(在提交按鈕上移動輸入,然后按Enter):

  • keypress處理程序運行並調用click該按鈕
  • 按鈕onclick返回false
  • 事件處理停止(未提交表單)

如果我刪除onclick="return false;" , 然后:

  • keypress處理程序運行並調用click該按鈕
  • 提交表單時不會調用submit處理程序

其他一些測試表明*不會調用* submit處理程序,因為您從keypress處理程序返回false

因此,要解決此問題:

  1. 刪除onclick="return false;" 從按鈕
  2. keypress處理程序中刪除return false

這將顯示警報,然后按您期望的方式提交表單。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM