2016-07-01 65 views
-1

在我的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" }) 

當我選中「default_only」複選框時,我應該如何在我的js文件中禁用「selected_member」選項?

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

    // What should I do here??? 

} 

SOLUTION:

我發現,不使用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"); 
} 
+0

的可能的複製[如何禁用/使用jQuery使選擇字段?](http://stackoverflow.com/questions/10570070/how-to-disable-enable-select-field-using-jquery) –

回答

0

什麼document.getElementById("selected_member").hide();
編輯:
你可以做到這一點在onclick事件而非JavaScript
如果你想顯示它未點擊就可以使用切換(時)這一翻譯隱藏的()。
(但你應該使用默認隱藏,然後)

+0

這引發了一條消息「該對象不支持hide()方法」 。 – user4134476

+0

如果你隱藏div而不是select? – Gaetan

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/

+0

謝謝你的回覆。演示工作,但我的應用程序沒有。這可能與這些控件顯示在我的應用程序的對話框中有關。儘管我在Visual Studio中的函數中放置了一個斷點,但在切換複選框狀態時它從未被擊中。 – user4134476

+0

您好!這很奇怪,你通常如何在你的應用中執行js腳本? – Knriano