javascript - 为什么 $.change() 会在提交按钮上触发?

标签 javascript jquery jquery-events

我有一个 $.change() 事件,但是当按下提交按钮时,更改事件会再次触发。当文本输入到输入文本框中时,它应该只触发一次。

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

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

最佳答案

编辑:无论出于何种原因,单击输入按钮时都会调用更改事件。 (感谢安东尼)

解决此问题的方法就是不要选择提交按钮。

你可以试试

$('input:text')

仅选择文本字段。

或者你也可以这样做

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

选择除提交按钮之外的所有输入元素。

Read about selectors here

编辑:使用<button>相反不会工作。它仍然算作 input字段,但它的值与按钮​​上显示的文本是分开的。

关于javascript - 为什么 $.change() 会在提交按钮上触发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1549515/

相关文章:

javascript - 从 javascript 字符串中删除特定的 HTML 标签及其内容

javascript - JSON-LD 模式与 GatsbyJS 的丰富片段

jquery - 没有花式框滚动条

javascript - 调整窗口大小时是否可以监听 keydown 和 keyup

javascript - Click 事件是否穿透到 <html> 元素?

performance - Javascript、IE、字符串和性能问题

javascript - 接收不同数组元素时数组中的相同 JSON 对象

javascript - 具有绝对位置的图像上的背景图像

javascript - 网页中这个js.js?version=1364903356是什么意思?

javascript - 将事件附加到动态创建的 dom 元素