2016-07-01 6 views
-1

In meiner csshtml-Datei habe ich ein Dialogfenster definiert, in dem ein Kontrollkästchen und eine Auswahl angezeigt werden.Wie wird ein Steuerelement deaktiviert, das in einem Dialog angezeigt wird?

<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" }) 

Was soll ich in meiner js Datei tun, um die „selected_member“ wählen, wenn die „default_only“ Kontrollkästchen aktiviert ist zu deaktivieren?

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

    // What should I do here??? 

} 

LÖSUNG:

ich eine Lösung gefunden, die nicht jquery nicht verwendet.

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

Mögliche Duplikat [So deaktivieren/aktivieren Auswahlfeld mit jQuery ?] (http://stackoverflow.com/questions/10570070/how-to-disable-enable-select-field-using-jquery) –

Antwort

0

Was document.getElementById("selected_member").hide();
Edit:
Sie es in Onclick-Ereignis tun, anstatt Javascript
Wenn Sie es wollen zeigen, wenn unclicked Sie Knebel() intead Versteck verwenden können().
(Aber Sie mit Standard verstecken sollte dann)

+0

Dies führte zu der Meldung "Das Objekt unterstützt die Methode hide() nicht" . – user4134476

+0

Und wenn du das div versteckst anstatt das select? – Gaetan

0

Sie können dies versuchen:

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

}); 

Hier für eine Live-Demo: https://jsfiddle.net/vqdwkdzf/

+0

Vielen Dank für Ihre Antwort. Die Demo funktionierte, aber meine App nicht. Dies hängt möglicherweise damit zusammen, dass die Steuerelemente in einem Dialog in meiner App angezeigt werden. Obwohl ich einen Haltepunkt in der Funktion in Visual Studio einfügte, wurde es nie getroffen, wenn der Checkbox-Status gewechselt wurde. – user4134476

+0

Sie sind willkommen. Das ist seltsam, wie führen Sie normalerweise js-Skript in Ihrer App aus? – Knriano

Verwandte Themen