如何禁用对话框中显示的控件?

时间:2016-07-01 10:32:58

标签: javascript html razor

在我的csshtml文件中,我定义了一个对话框窗口,其中显示了一个复选框和一个选择。

<div id="my_dialog_template" style="display: none;">
    <div class="member_selection" id="dlg_member_selection" data-title="Member Selection">
        <div class="block_row">
            <label>&nbsp;</label>
            <label class="default_only">
                <input id="default_only" type="checkbox" onclick="actionDefaultOnlyCheckedChanged();" />
                Default Member Only
            </label>
        </div>
        <div class="block_row">
            <label>Selected Member</label>
            <select class="selected_member" id="selected_member"></select>
        </div>
    </div>
</div>

@Html.HiddenFor(model => model.IsDefaultOnly, new { @id = "default_only" })
@Html.HiddenFor(model => model.SelectedMember, new { @id = "selected_member" })

我应该如何在我的js文件中禁用&#34; selected_member&#34;选择&#34; default_only&#34;选中复选框?

function actionDefaultOnlyCheckedChanged() {
    var isDefaultOnly = $("#default_only").val();

    // What should I do here???

}

解决方案:

我找到了一个不使用jquery的解决方案。

var dlg = $("#dialog[template='member_selection']");
var defaultOnly = dlg.find('#default_only');
var selectedMember = dlg.find(".selected_member");

if (defaultOnly.is(":checked")) {
    defaultOnly.val("True");
    selectedMember.prop("disabled", true);
} else {
    defaultOnly.val("False");
    selectedMember.removeAttr("disabled");
}

2 个答案:

答案 0 :(得分:0)

document.getElementById("selected_member").hide();如何呢? 编辑:
您可以在onclick事件而不是javascript中执行此操作 如果你想在未被点击时显示它,你可以使用toggle()intead of hide() (但你应该默认隐藏)

答案 1 :(得分:0)

你可以试试这个:

$(function() {
    $('#default_only').on('change',function(){
     var isChecked = ($('#default_only:checked').val() == "on")? true : false;
     $('#selected_member').prop('disabled', isChecked);
  });

});

这是一个现场演示:https://jsfiddle.net/vqdwkdzf/