Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery捕获对表单上命名输入的所有更改_Javascript_Events_Jquery - Fatal编程技术网

Javascript jQuery捕获对表单上命名输入的所有更改

Javascript jQuery捕获对表单上命名输入的所有更改,javascript,events,jquery,Javascript,Events,Jquery,我试图确定表单中的一组命名输入/选择/无线电/选中/隐藏字段何时发生更改 特别是,我想捕获对与jQuery的选择器$(“form:input”)匹配的字段进行任何更改的时间,以及该输入具有名称属性的位置。但是,表单不是静态的,即一些字段稍后会动态添加 我最初的想法是跟踪何时添加与:input匹配的新命名元素,然后添加事件处理程序,如下所示: function on_change() { alert("The form element with name " + $(this).attr("

我试图确定表单中的一组命名输入/选择/无线电/选中/隐藏字段何时发生更改

特别是,我想捕获对与jQuery的选择器
$(“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')按预期工作。太酷了!