簡體   English   中英

為什么$ .change()在提交按鈕上觸發?

[英]Why does $.change() fire on a submit button?

我有一個$.change()事件,但是當按下“提交”按鈕時,change事件再次觸發。 僅當將文本輸入到輸入文本框中時才觸發一次。

$('input:submit', top.document).bind('click', function (e) {
    alert("submitting")
});

$('input').change(function (e) {
    alert("fire");
});

編輯:無論出於何種原因,單擊輸入按鈕時都會調用change事件。 (感謝安東尼)

解決此問題的方法就是根本不選擇“提交”按鈕。

你可以試試

$('input:text')

僅選擇文本字段。

或者你可以做

$('input:not(:submit)')

選擇除提交按鈕以外的所有輸入元素。

在這里了解選擇器

編輯:使用<button>代替將不起作用。 它仍然算作input字段,但其值與按鈕上顯示的文本分開。

$('input').change(function(e){ alert("fire") }); 將該事件應用於所有輸入元素,包括<input type="submit".../> 如果您確實希望每個文本輸入元素都具有更改事件,則希望``$('input [type = text]')。change(function(e){alert(“ fire”)});`否則,最好使用id或class。

@標記,

您已准備就緒,如果可以幫助,我會編輯您。 也許很快有一天...

@ajowi,

提交按鈕是輸入。 至少其中大多數是:

  <input type="submit" />

所以,馬克,不是他們對按鈕文本做任何事情,而是通過單擊按鈕來更改輸入(即按鈕)。

所以他的解決方案很棒。 一起去

  $("input:text").change

暫無
暫無

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

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