Jquery 输入 ID 数组检测变化
Jquery array of input IDs detect change
我有一个关于检测输入 ID 数组中输入变化的问题。
例如我有一个输入 ID 数组:var arrayOfInputs = ['#firstname', '#lastname', '#email', '#phone'];
我的问题是我想检测这些字段中的任何输入更改,但我不想分别为每个输入字段编写庞大的脚本代码。
所以问题是:是否有一种方法可以通过 jQuery 的一两行代码来检测数组中所有这些输入的输入变化?
也许我应该使用 ID 数组以外的其他东西?
您可以使用 each() 在排序代码中执行这些操作。
var arrayOfInputs = ['#firstname', '#lastname', '#email', '#phone'];
$.each(arrayOfInputs, function(index, data){
$(data).on('change',function(){
alert($(this).val());
});
});
So question is: do there is a way to detect input change for all these inputs in array with one or two lines of code with jQuery?
是:
$(arrayOfInputs.join(",")).on("change", function() {
// Here, `this` will refer to the input that changed
});
现场演示:
var arrayOfInputs = ['#firstname', '#lastname', '#email', '#phone'];
$(arrayOfInputs.join(",")).on("change", function() {
snippet.log(this.id + " changed");
});
<div><input type="text" id="firstname"></div>
<div><input type="text" id="lastname"></div>
<div><input type="text" id="email"></div>
<div><input type="text" id="phone"></div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<!-- Script provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
Maybe I should use something other than array of IDs?
是的,给他们一个共同的 class 或 data-*
属性或其他东西,而不是列出 ID。
现场演示:
$(".watch-me").on("change", function() {
snippet.log(this.id + " changed");
});
<div><input type="text" class="watch-me" id="firstname"></div>
<div><input type="text" class="watch-me" id="lastname"></div>
<div><input type="text" class="watch-me" id="email"></div>
<div><input type="text" class="watch-me" id="phone"></div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<!-- Script provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
我有一个关于检测输入 ID 数组中输入变化的问题。
例如我有一个输入 ID 数组:var arrayOfInputs = ['#firstname', '#lastname', '#email', '#phone'];
我的问题是我想检测这些字段中的任何输入更改,但我不想分别为每个输入字段编写庞大的脚本代码。
所以问题是:是否有一种方法可以通过 jQuery 的一两行代码来检测数组中所有这些输入的输入变化?
也许我应该使用 ID 数组以外的其他东西?
您可以使用 each() 在排序代码中执行这些操作。
var arrayOfInputs = ['#firstname', '#lastname', '#email', '#phone'];
$.each(arrayOfInputs, function(index, data){
$(data).on('change',function(){
alert($(this).val());
});
});
So question is: do there is a way to detect input change for all these inputs in array with one or two lines of code with jQuery?
是:
$(arrayOfInputs.join(",")).on("change", function() {
// Here, `this` will refer to the input that changed
});
现场演示:
var arrayOfInputs = ['#firstname', '#lastname', '#email', '#phone'];
$(arrayOfInputs.join(",")).on("change", function() {
snippet.log(this.id + " changed");
});
<div><input type="text" id="firstname"></div>
<div><input type="text" id="lastname"></div>
<div><input type="text" id="email"></div>
<div><input type="text" id="phone"></div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<!-- Script provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
Maybe I should use something other than array of IDs?
是的,给他们一个共同的 class 或 data-*
属性或其他东西,而不是列出 ID。
现场演示:
$(".watch-me").on("change", function() {
snippet.log(this.id + " changed");
});
<div><input type="text" class="watch-me" id="firstname"></div>
<div><input type="text" class="watch-me" id="lastname"></div>
<div><input type="text" class="watch-me" id="email"></div>
<div><input type="text" class="watch-me" id="phone"></div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<!-- Script provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>