Javascript jQuery捕获对表单上命名输入的所有更改
我试图确定表单中的一组命名输入/选择/无线电/选中/隐藏字段何时发生更改 特别是,我想捕获对与jQuery的选择器Javascript jQuery捕获对表单上命名输入的所有更改,javascript,events,jquery,Javascript,Events,Jquery,我试图确定表单中的一组命名输入/选择/无线电/选中/隐藏字段何时发生更改 特别是,我想捕获对与jQuery的选择器$(“form:input”)匹配的字段进行任何更改的时间,以及该输入具有名称属性的位置。但是,表单不是静态的,即一些字段稍后会动态添加 我最初的想法是跟踪何时添加与:input匹配的新命名元素,然后添加事件处理程序,如下所示: function on_change() { alert("The form element with name " + $(this).attr("
$(“form:input”)
匹配的字段进行任何更改的时间,以及该输入具有名称
属性的位置。但是,表单不是静态的,即一些字段稍后会动态添加
我最初的想法是跟踪何时添加与:input
匹配的新命名元素,然后添加事件处理程序,如下所示:
function on_change() {
alert("The form element with name " + $(this).attr("name") + " has changed");
}
function reg_new_e_handler(input_element) {
input_element.change(on_change);
}
然而,我很有希望通过一些jQuery魔术来避免这种情况。特别是,是否有一种方法可以在jQuery中注册一个事件处理程序,该处理程序将处理与以下内容匹配的输入元素:
$("form :input").filter( function () { $(this).attr("name") } ).change(on_change);
但是,每当添加新的输入元素时,都要更新此事件集
我认为可以使用$(“form”).keyup(on_change)
在表单
节点上捕获keyup
事件,但我不确定如何捕获更改
事件
我还想用它来捕获keyup
事件
谢谢你的阅读
你要找的布莱恩。例如:
$(':input[name="something"]'.live('change', function(e) {
//Do things
});
使用
.live
添加事件处理程序将处理与选择器匹配的所有元素的事件,无论它们是何时添加的。您只需执行以下操作:输入[name]以获取所有命名元素。是,$(':input[name]')。live('change onkeyup',foo')代码>按预期工作。太酷了!