选中复选框后启用或禁用td内的文本框

时间:2012-09-25 11:09:41

标签: jquery asp.net-mvc

我的Edit.cshtml -

<table id="scDetails" class="dataTable">
        <thead>
            <tr>
                <th>RItem</th>
                <th>IChecked</th>
                <th>Notes</th>
            </tr>
        </thead>
        <tbody>
           @foreach (var fback in Model.Fbacks)
            {
                <tr>
                    <td>@Html.HiddenFor(m => fback.FItem)

                        @Html.DisplayFor(m => fback.RItem)
                    </td>
                    <td>@Html.CheckBoxFor(m => fback.IChecked)</td>
                    <td>@Html.TextBoxFor(m => fback.Notes)</td>
                </tr>
            }
        </tbody>
    </table>

选中表格行上的“IS Checked”复选框时,应启用文本框“Notes”,否则禁用。

2 个答案:

答案 0 :(得分:2)

如果您使用的是jQuery:

$(function() {
    $('#scDetails tbody input[type="checkbox"]').click(function() {
        var notes = $(this).closest('tr .notes');
        notes.prop('disabled', $(this).is(':checked'));
    });
});

只需为文本框指定notes类名,以便前一个选择器正常工作:

<td>@Html.TextBoxFor(m => fback.Notes, new { @class = "notes" })</td>

备注:我的示例中使用的.prop()函数是在文本框上设置已禁用或只读属性的推荐方法。它从jQuery 1.6开始提供。如果您使用的是旧版本的jQuery,则可以使用.attr()方法。

答案 1 :(得分:0)

<script language="javascript">
<!--    
function fnDisabled(trecval)
    {
        if(trecval=="2")
        {
            document.getElementById('inputname').disabled=true;
        }
    }
</script>