我的表格中有几个相似的字段:
<select class="form-control" name="Ops[1][WorkCentre]">..</select>
<select class="form-control" name="Ops[2][WorkCentre]">..</select>
...
<select class="form-control" name="Ops[n][WorkCentre]">..</select>
我不知道会有多少这样的字段,因为用户会动态添加字段。
当任何这些输入发生变化时,我需要一些执行java脚本函数的方法,并且在该函数内部我需要能够访问已经针对'Ops'数组更改的输入键。
我很高兴使用jquery。我在想像
$('select[name=Ops[i][WorkCentre]').change(function(i){
// A function using i
});
或者也许是一个java脚本事件监听器?
感谢任何帮助。
答案 0 :(得分:1)
您可以使用事件委派:
// Listen for 'change' event on every element that has class 'form-control'
$(document).on('change', 'select.form-control', function() {
var name = $(this).attr('name');
// You code here ...
});
<强>更新强>
要从name属性中提取数字,您可以按如下方式设置名称:
name="Ops_[1]_[WorkCentre]"
然后按'_'分割:
var number = $(this).attr('name').split('_')[1];
更新#2
更好的解决方案是在单独的属性中设置数字,如下所示:
<select class="form-control" name="Ops[1][WorkCentre]" data-number="1">..</select>
然后像这样检索它:
var number = $(this).attr('data-number');