我有一个$.change()
事件,但是当按下提交按钮时,更改事件会再次触发。当文本输入到输入文本框时,它只会触发一次。
$('input:submit', top.document).bind('click', function (e) {
alert("submitting")
});
$('input').change(function (e) {
alert("fire");
});
答案 0 :(得分:4)
编辑:无论出于何种原因,单击输入按钮时都会调用更改事件。 (谢谢安东尼)
解决此问题的方法是不要选择提交按钮。
你可以尝试
$('input:text')
仅选择文字字段。
或者你可以做到
$('input:not(:submit)')
选择除提交按钮以外的所有输入元素。
修改:改为使用<button>
无效。它仍然计为input
字段,但它的值与按钮上显示的文本是分开的。
答案 1 :(得分:0)
$('input').change(function(e){ alert("fire") });
将该事件应用于所有输入元素,包括<input type="submit".../>
。如果你真的希望每个单个文本输入元素都有一个更改事件,你需要``$('input [type = text]')。change(function(e){alert(“fire”)});`否则,最好使用id或class。
答案 2 :(得分:0)
@马克,
如果我能提供帮助的话,你就可以了。我会编辑你。也许有一天很快......
@ajowi,
提交按钮是输入。至少大多数是:
<input type="submit" />
所以Mark,并不是他们用按钮文本做任何事情,而是通过点击它来改变输入(即按钮)。
所以他的解决方案很棒。跟着
$("input:text").change