2015-02-18 3 views
6

Hier ist mein CodeShow/Steuer ausblenden basierend auf Drop-Down-Auswahl mvc 4 Rasierer C#

@Html.DropDownListFor(z => z.SelectedReportId, new SelectList(Model.ReportTypes, "Value", "Text", Model.SelectedReportId), "-- Select Report --") 
@Html.CheckBoxFor(model => model.IncludePhotos)@Html.LabelFor(model => model.IncludePhotos) 

Welche erzeugt:

<select data-val="true" data-val-number="The field SelectedReportId must be a number." data-val-required="The SelectedReportId field is required." id="SelectedReportId" name="SelectedReportId"> 
    <option value="">-- Select Report --</option> 
    <option value="1">Excel Report</option> 
    <option value="2">Text Report</option> 
</select> 
<br /> 
<input data-val="true" data-val-required="The Include photos in the report field is required." id="IncludePhotos" name="IncludePhotos" type="checkbox" value="true" /> 

ich ein Drop-Down-und eine Checkbox haben, ich brauche das Kontrollkästchen deaktivieren wenn der Benutzer den ersten Wert im Dropdown-Menü auswählt. Hier ist die Javascript-I ohne Erfolg bin mit

$(function() { 
    $('#SelectedReportId').change(function() { 
     var value = $(this).val(); 
     if (value == '1') { 
      $('#IncludePhotos').show(); 
     } else { 
      $('#IncludePhotos').hide(); 
     } 
    }); 
}); 

Jede mögliche Hilfe schätzen, danke

+1

Können Sie den HTML zeigen, den der Rasierklingencode wirklich erzeugt? –

+0

Was macht Ihr JavaScript, wenn überhaupt? – krillgar

+0

In [diesem Beispiel] (http://jsfiddle.net/ccLpbps0/) sieht alles gut aus. Erhalten Sie Skriptfehler auf der Seite? Sind Sie sicher, dass jQuery korrekt eingebunden ist? –

Antwort

7

Enthaltenes Javascript in einem @section scripts {} Abschnitt und es hat angefangen zu arbeiten,

@section scripts{ <script type="text/javascript"> 
$(function() { 
    $('#SelectedReportId').change(function() { 
     var value = $(this).val(); 
     if (value == '1') { 
      $('#IncludePhotos').show(); 
     } else { 
      $('#IncludePhotos').hide(); 
     } 
    }); 
});</script>} 
+2

Sie erkennen, dass dies nur die Checkbox zeigt/versteckt - wenn der Benutzer es vor der Auswahl einer Option überprüft hat, wird es noch post 'true' –

+0

check [this] (http: //forums.asp.net/t/1875676.aspx? Wie + + + ein + MVC + drop + down + box +) für mehr Optionen verstecken, Hoffnung hilft jemandem. – stom

1

versuchen, diese

@Html.DropDownListFor(z => z.SelectedReportId, new SelectList(Model.ReportTypes, "Value", "Text", Model.SelectedReportId),new {id="myDropdown"}

@Html.CheckBoxFor(model => model.IncludePhotos,new {id="myCheckbox"})

$(function() { $('#myDropdown').change(function() { var value = $(this).val(); var fistVal=$('#myDropdown option:first-child').attr("selected", "selected"); if (value == fistVal) { $('#IncludePhotos').show(); } else { $('#IncludePhotos').hide(); } }); });

Verwandte Themen