【问题标题】:disable/ enable dynamically added input field by jQuery禁用/启用 jQuery 动态添加的输入字段
【发布时间】:2013-06-18 22:12:29
【问题描述】:

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

提前感谢您的帮助。

【问题讨论】:

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

标签: jquery input disabled-input


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-21
    • 2013-10-22
    • 1970-01-01
    • 2014-02-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多