通过jQuery禁用/启用动态添加的输入字段

通过jQuery禁用/启用动态添加的输入字段,jquery,input,disabled-input,Jquery,Input,Disabled Input,问题1: 以下代码应通过jquery启用/禁用动态添加的输入字段,但它不能按预期工作: $(document).ready(function () { $('#auto').change(function () { if ($(this).val() == 1) { $('input[id="speed_car"]').prop('disabled', false).css('background', '').val('4') }

问题1:

以下代码应通过jquery启用/禁用动态添加的输入字段,但它不能按预期工作:

$(document).ready(function () {
    $('#auto').change(function () {
        if ($(this).val() == 1) {
            $('input[id="speed_car"]').prop('disabled', false).css('background', '').val('4')
        } else {
            $('input[id="speed_car"]').prop('disabled', true).css('background-color', '#03f').val('')
        }
    });
});
问题2:如果我保存字段并重新加载页面,它会工作,但只适用于第一个(包含其他输入字段和选择)

我应该如何更改代码以使其正常工作

下面是添加行的部分代码:

  var modell = <?php echo $modell; ?>;
   .
   .
   .
  html += '    <td class="left"><select name="car_modell[' + modell + '][auto]">'; 
  html += '     <option value="1" selected="selected"><?php echo $text_enabled; ?></option>';
  html += '     <option value="0"><?php echo $text_disabled; ?></option>';
  html += '    </select></td>';
  html += '    <td class="left"><input type="text" maxlength="1" name="car_modell[' + modell + '][speed_car]" value="4" size="3" /> </td>'; 
  ecc...
var model=;
.
.
.
html+='';
html+='';
html+='';
html+='';
html+='';
ecc。。。
提前感谢您的帮助。

您应该使用“开启”功能。看这里:

jQuery在加载时绑定,但“on”会导致它在加载时求值/绑定

$("#dataTable tbody tr").on("click", function(event){
  alert($(this).text());
});

只是想知道,输入id speed_car是唯一的吗?#auto change是否按预期启动?顺便说一句,你能提供一个JSFIDLE吗?这是问题之一。它总是相同的id。但我不知道如何用另一种方式来写它。所以,简单的方法是不使用id而是使用类。如果需要,您仍然可以应用一些上下文。那么更改事件呢,它被激发了吗?正如我们所说的,使用一个类而不是id。id必须是唯一的。如果要添加行,id或类将始终是相同的。不会改变。问题是行的值是动态添加的。