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

时间:2013-06-18 22:12:29

标签: 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')
        } else {
            $('input[id="speed_car"]').prop('disabled', true).css('background-color', '#03f').val('')
        }
    });
});

问题2:如果我保存字段并重新加载页面它可以工作,但仅适用于第一个< tr> (包含其他输入字段并选择)。

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

以下是添加行的代码的一部分:

  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...

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您应该使用“on”功能。看这里:http://api.jquery.com/on/

jQuery绑定加载,但“on”导致它在那一刻评估/绑定。

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