我有一个$.change()
事件,但是当按下提交按钮时,change事件再次触发。它应该只在文本输入到输入文本框时触发一次。
$('input:submit', top.document).bind('click', function (e) {
alert("submitting")
});
$('input').change(function (e) {
alert("fire");
});
我有一个$.change()
事件,但是当按下提交按钮时,change事件再次触发。它应该只在文本输入到输入文本框时触发一次。
$('input:submit', top.document).bind('click', function (e) {
alert("submitting")
});
$('input').change(function (e) {
alert("fire");
});
3条答案
按热度按时间fwzugrvs1#
编辑:不管什么原因,当输入按钮被点击时,一个改变事件被调用。
解决这个问题的方法就是不要选择提交按钮。
你可以试试
仅选择文本字段。
或者你可以
选择除提交按钮外的所有输入元素。
Read about selectors here
编辑:使用
<button>
不起作用。它仍然算作input
字段,但它的值与按钮上显示的文本是分开的。qni6mghb2#
$('input').change(function(e){ alert("fire") });
将该事件应用于所有输入元素,包括<input type="submit".../>
。如果您确实希望每个文本输入元素都有一个change事件,则需要'`$(' input [type=text]').change(function(e){ alert(“fire”)});否则,最好使用id或class。6mw9ycah3#
@马克,
你说的很对,如果我能帮上忙的话,我会编辑你的。也许很快的某一天...
@阿乔维,
提交按钮是输入,至少大部分是:
Mark,这并不是说他们对按钮文本做了什么,而是输入,也就是按钮,通过点击它的行为被改变了。
所以他的解决方案很棒。继续