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)代码>如果您想处理所有类型的“更改”