我正在运行一个附加输入字段的循环。现在,当我使用循环时,所有属性都是类似的。所以,当我需要抓住任何一个时,我抓住了多个场。
如何根据索引动态更改属性,以便我可以获取正确的输入字段?
ebs_no = data.number_ebs;
for(i=0;i<ebs_no;i++){
$('form.ebs').append("<br>EBS"+(i+1)+"</br>");
$('form.ebs').append('<br> SNAPSHOTNO <input type="text" name="'+i+'"></br>');
$('form.ebs').append('<input type="submit" name="submit">');
$('[name='+i+']').on('submit',function(){
alert($('[name='+i+']').val());
});
}
答案 0 :(得分:0)
您正在寻找事件委派。它用于创建动态DOM元素,并在循环中使用class而不是iterare i
ebs_no = data.number_ebs;
for (i = 0; i < ebs_no; i++) {
$('form.ebs').append("<br>EBS" + (i + 1) + "</br>");
$('form.ebs').append('<br> SNAPSHOTNO <input type="text" class="someClass" name="' + i + '"></br>');
$('form.ebs').append('<input type="submit" name="submit">');
$('[name=' + i + ']').on('submit', function () {
alert($('[name=' + i + ']').val());
});
}
$(document).on('submit', '.someClass', function () {
alert($(this).val());
});
答案 1 :(得分:0)
替换它:
alert($('[name='+i+']').val());
由此:
alert($(this).val());
代码$(this)
指的是正在处理的元素