Jquery 我想添加行并再次锁定

Jquery 我想添加行并再次锁定,jquery,Jquery,首先执行正常的无错误锁定。我想再次添加行压力锁定。 哪里可能有错误? 如果你看看这个例子,我会很高兴的。 添加行>不工作 HTML 锁定/解锁 锁定/解锁 锁定/解锁 1. 锁 解锁 1. 锁 解锁 JS $(文档).ready(函数(){ $('.row')。每个(函数(){ var$dropdown=$(this).find(“#selecta”), $textfield=$(this.find('.textfield'); $dropdown.change(函数(){ 如果($drop

首先执行正常的无错误锁定。我想再次添加行压力锁定。 哪里可能有错误? 如果你看看这个例子,我会很高兴的。 添加行>不工作

HTML


锁定/解锁
锁定/解锁
锁定/解锁
1.
锁
解锁
1.
锁
解锁
JS

$(文档).ready(函数(){
$('.row')。每个(函数(){
var$dropdown=$(this).find(“#selecta”),
$textfield=$(this.find('.textfield');
$dropdown.change(函数(){
如果($dropdown.val()!=“1”){
$textfield.removeAttr('disabled');
}否则{
$textfield.attr('disabled','disabled').val('');
}
}).trigger('change');//添加了用于计算初始状态的触发器
});
});
$(文档).ready(函数(){
var计数器=0;
$(“#添加行”)。在(“单击”上,函数(){
计数器=$('#myTable tr')。长度-2;
var newRow=$('');
var cols=“”;
cols+='1LockUnlock';
cols+='';
newRow.append(cols);
if(counter==4)$('#addrow').attr('disabled',true).prop('value','youhavehavedthelimit');
$(“table.color”).append(newRow);
计数器++;
});
$(“table.color”)。在函数(事件)上(“单击”,“按钮”){
$(this).tr.remove();
calculateGrandTotal();
计数器-=1
$('#addrow').attr('disabled',false).prop('value','addrows');
});
});

我想再次添加行压力锁定。

您不想使用重复ID。因此,我将标记和代码中的
#selecta
更改为
。selecta

由于要动态添加行,因此在绑定“行锁定”处理程序时必须使用事件委派,如下所示:

$(document).ready(function () {
    $(document).on('change','.selecta',function() {
        $(this).closest('.row').find('.textfield')
        .prop('disabled', (this.value == '1'))
        .val( this.value == 1 ? '' : this.value );
    });
    $('.selecta').change();// added trigger to calculate initial state
});
然后,一旦添加新行,您就必须在该行中的select上触发更改:

newRow.find('.selecta').change();


我更喜欢操作
disabled
属性,而不必添加和删除
disabled
属性。

什么是“压力锁定”?很抱歉,一点英语都没有。我在错误演示链接+1中提到过,但有一个小评论:静态行不会像以前那样初始化。也许是因为你在$(文档)上调用了触发器('change')?@John,谢谢。我已经更新了我的代码;请查收。
$(document).ready(function () {
    $(document).on('change','.selecta',function() {
        $(this).closest('.row').find('.textfield')
        .prop('disabled', (this.value == '1'))
        .val( this.value == 1 ? '' : this.value );
    });
    $('.selecta').change();// added trigger to calculate initial state
});
newRow.find('.selecta').change();