Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.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 如何有效地使用输入类型的更改功能_Javascript_Jquery - Fatal编程技术网

Javascript 如何有效地使用输入类型的更改功能

Javascript 如何有效地使用输入类型的更改功能,javascript,jquery,Javascript,Jquery,我正在跟踪输入更改,如下所示: $(document).ready(function() { $('input').change(function () { alert("Key pressed"); }); $('textarea').change(function () { alert("Key pressed"); }); $('input:radio').change(function() { aler

我正在跟踪输入更改,如下所示:

$(document).ready(function() {
    $('input').change(function () {
        alert("Key pressed");
    });
    $('textarea').change(function () {
        alert("Key pressed");
    });
    $('input:radio').change(function() {
       alert("Key pressed");
    });
    $('input:checkbox').change(function() {
       alert("Key pressed");
    });
 });

是否可以重新考虑上述代码,以便不需要单独调用每个元素?

要捕获所有输入上的
按键事件,您不必提及
:复选框
:收音机
,因为它们包含在
输入中

$('input, textarea').on('change', function () {
    alert("Key pressed");
});
您甚至可以使用
keypress
/
keyup
/
keydown
事件,而不是
change

选择所有指定选择器的组合结果。您可以指定任意数量的选择器组合成单个结果。这种多表达式组合器是选择不同元素的有效方法。返回的jQuery对象中DOM元素的顺序可能不同,因为它们将按文档顺序排列。此组合符的另一个替代方法是.add()方法


文档:

jQuery使用Sizzle选择器引擎,它遵循与CSS相同的规则。记住这一点,您可以使用
分离选择器。试试这个:

$('input, textarea').change(function() {
   alert("Key pressed");
});
或者,您可以将公共类应用于所有这些元素,并选择该类


请注意,您的
:收音机
:复选框
选择器在选择
输入
元素时是多余的。还要注意,
change
事件只有在元素值发生更改并失去焦点时才会触发。如果您想在按键时实际触发事件,请根据您的具体要求使用
keypress
keydown

使用多选择器重构代码
:input
选择所有输入元素

$(':input').on('change', function () {
    alert("Key pressed");
});

如果您使用$('input')。则无需为radio或checkbox编写更改。它将接管输入类型的所有控制。将同一类添加到这些不同的输入类型。并在jquery for event中使用该类。e、 g.$(document).on('change',.'common_class',函数(){alert(“按键”);})@上校:我猜你的意思是
$(':input')
而不是@A。沃尔夫:是的right@Tushar-
:输入
选择所有输入元素:
:输入
也包括
文本区域
)注意,警报“按键”与此无关,因为
change
事件是在元素blurred@A.Wolff-我们在上下文中所做的。我可以将活动更改为keypress@JqueryKing在现代浏览器上,最好使用
$(':input')。On('input',handler)如果您想处理所有类型的“更改”