在TABLE ROW中选中复选框时启用文本框

时间:2012-09-25 07:34:33

标签: javascript jquery

我的submit.cshtml是:

<table id="scDetails" class="table">
    <thead>
        <tr>
            <th>Item</th>
            <th>IsChecked</th>
            <th>Comment</th>
        </tr>
    </thead>
    <tbody>
        @Html.EditorFor(m => m.Fbacks)
    </tbody>
</table>

EditorTemplate适用于 - @Html.EditorFor(m => m.Fbacks)(Fbacks.cshtml)

<tr>
  <td>@Html.HiddenFor(m => m.Item)
    @Html.DisplayFor(m => m.Item)
  </td>
  <td>@Html.CheckBoxFor(m => m.IsChecked)</td>
  <td>@Html.TextBoxFor(m => m.Comment)</td>
</tr>

我需要的是:

当我勾选复选框时,应启用文本框,取消选中时,应禁用文本框。

3 个答案:

答案 0 :(得分:2)

$("input[type='checkbox']").on("click", function() {
    $(this).parent().next().find("textarea").prop("disabled", ! this.checked);
});

答案 1 :(得分:1)

$('input[type=checkbox]').on('click', function() {
    var isChecked = $(this).is(':checked');

    $(this).parent().next().find('input[type="text"]').attr('disabled', !isChecked);
}); 

// OR

$('input[type=checkbox]').on('click', function() {
        var isChecked = $(this).is(':checked');

        $(this).parent().parent().find('input[type="text"]').attr('disabled', !isChecked);
    }); 

答案 2 :(得分:1)

您应该将事件添加到复选框

$('#Fbacks').click (function ()
{
     var thisCheck = $(this);
     if (thischeck.is (':checked'))
     {
       $('#Comment').prop('disabled', true);
     }else{
       $('#Comment').prop('disabled', false);
     }
});

在这种情况下@Html.EditorFor(m => m.Fbacks) id = 'Fbacks'