MVC dropdownlist onchange-Aufruf jquery
Ich habe eine SelectList
Vertretung einer Lieferung geben Sie für eine Bestellung.
Versandart Referenz-Daten hat die üblichen code/Beschreibung, aber auch eine zusätzliche Boolesche Eigenschaft, die angibt, ob noch weitere Daten benötigt werden, eingetragen werden, für den die Art ausgewählt.
Also für die Notfall-Lieferungen zusätzliche Daten erforderlich ist. Die zusätzliche Eingabefelder festgelegt werden sichtbar, wenn Not ausgewählt wurde, der sonst im verborgenen
Meine ViewModel
enthält <List>ReferenceDeliveryTypes
enthält die 3 Eigenschaften.
Habe ich einen SelectListItems
von der ViewModel-Daten
@Html.DropDownListFor(model => model.DeliveryTypeCode,
new SelectList(Model.ReferenceDeliveryTypes as System.Collections.IEnumerable,
"DeliveryTypeCode", "DeliveryTypeDescription"), new { id = "ddlDeliveryType" })
Wie kann ich rufen Sie eine jQuery-Funktion auf die änderung der Lieferart, übergeben Sie den ausgewählten code und überprüfen Sie die Model.ReferenceDeliveryTypes
für diesen code, um zu sehen, ob die zusätzlichen data-Eigenschaft ist true/false ein - /ausblenden der zusätzlichen Felder div
?
Habe ich es geschafft die jQuery-Funktion, die aufgerufen wird, übergeben Sie den Wert.
$(function () {
$('#ddlDeliveryType').change(function () {
var value = $(this).val();
alert(value);
});
});
InformationsquelleAutor MartinS | 2013-01-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich weiß nicht von irgendeiner Weise, die Sie tun können diese mit einer select-Liste, aber ich schlage vor, die folgenden Optionen:
Glück
UPDATE
Für das hidden-Feld option aus, wenn Sie so etwas wie
123|456|789|
und verwenden Sie dannindexOf
mit angehängt eine|
zu der ausgewählten ID.InformationsquelleAutor Peter Smith
Konvertierte ich das Modell.ReferenceDeliveryTypes, um eine JSON-Liste, die es mir erlaubt, es auf der jQuery.
Möglicherweise nicht der beste Weg, aber es erlaubt mir, alles zu tun auf dem client anstatt eine AJAX-Aufruf zurück. Ich kann nun ein - /ausblenden der innerhalb des if-Blocks.
Dachte, es lohnt sich zu dokumentieren, was ich getan habe als ich nicht über das
@Html.Raw(Json.Encode
vor, und es könnte sich als nützlich erweisen für jemanden, der will Modell für den Zugriff auf Daten in jQuery.Alle zusätzlichen Kommentare willkommen.
InformationsquelleAutor MartinS