2012-07-25 7 views
9

Ich benutze jQuery Chosen Plugin in meiner ASP.NET MVC-Anwendung. Das Attribut data-placeholder funktioniert nicht, wenn die Dropdownliste Elemente enthält. Anstatt Standardtext anzuzeigen, wird automatisch das erste Element in der Liste ausgewählt.jQuery Chosen zeigt nicht Daten-Platzhalter, wenn es ausgefüllt ist

So definiere ich meine Dropdownliste.

Wenn Model.Data leer ist (es wird im Ansichtsmodell mit EF gefüllt), wird der Standardtext angezeigt. Andernfalls wird das erste Element ausgewählt. Ich möchte immer, dass meine Dropdown-Liste den Standardwert anzeigt.

Ich verwende das Plugin über $('.chzn-select').chosen(); Nichts besonderes.

Irgendwelche Ideen? Danke im Voraus.

Antwort

19

Sie müssen zuerst eine leere Option hinzufügen.

gemäß Dokumentation - http://harvesthq.github.com/chosen/

Anmerkung: Auf einzelnen auswählt, wird das erste Element angenommen durch den Browser ausgewählt werden. Um die Standardtextunterstützung zu nutzen, müssen Sie eine leere Option als erstes Element Ihrer Auswahlliste hinzufügen.

Vielleicht jQuery es

$(".chzn-select").prepend("<option></option>"); 
+0

danke. es funktionierte. –

+1

Wenn Sie ASP.Net verwenden, sollten Sie zunächst alles mit Razor machen wie @SametGunaydin beantwortet und keinen zusätzlichen Schritt in jQuery machen. –

0

Becoz Ihr Standard hinzuzufügen Wert, indem Sie Ihre Werte in der Liste ersetzt. Um Ihren Standardwert anzuzeigen, fügen Sie diesen Standardwert als erstes Element in Ihre Liste ein.

0

prüfen, ob es Datensatz auf das erste Element in der Liste, und Ihr Modell

+0

Dies könnte als Kommentar besser geeignet sein als als Antwort. –

5
@Html.DropDownListFor(model => model.categoryModel.Id, ViewBag.CategoryList as SelectList, "", new { @class = "chzn_a", data_placeholder = "Choose Category.." }) 

add „“ nach dem Select verbindlich, wenn unten Code nicht

$(".chzn_a").prepend("<option></option>"); 
0

Sie funktionierten Standardtextunterstützung

Die Option "Automatisch" legt den Standardfeldtext ("Wählen Sie ein Land ...") fest, indem Sie den Datenplatzhalterwert des Auswahlelements lesen. Wenn kein Datenplatzhalterwert vorhanden ist, wird standardmäßig "Auswahl einer Option" oder "Auswahl einiger Optionen" gewählt, je nachdem, ob die Auswahl einfach oder mehrfach ist. Sie können diese Elemente in der plugin js-Datei ändern, wie Sie es für richtig halten.

Hinweis: Bei Einzelauswahl wird davon ausgegangen, dass das erste Element vom Browser ausgewählt wird. Um die Standardtextunterstützung zu nutzen, müssen Sie eine leere Option als erstes Element Ihrer Auswahlliste hinzufügen.Default Text Support

0

Wenn Ihr Code sogar mit dem Hinzufügen von Leerzeichen option nicht funktioniert; Dann solltest du wissen, dass der Browser manchmal eine neue Seite braucht, um Code zu laden und zu wirken!

so Schließen Sie Ihre Registerkarte und öffnen Sie neue Registerkarte und gehen Sie auf Ihre Projektseite, um Änderungen zu sehen!

1

hatte ich gleiche Problem, und ich habe die folgenden: Sie nicht% an Breite Größe

, wenn Sie den gewählten Bereich zu initialisieren verwenden.

$(".chosen").chosen({ 
'no_results_text' :'Oops, nothing found!', 
'width'   :'700px', 
'search_contains' : true, 
'placeholder_text_multiple':'Please choose something ...', 
'display_selected_options':false    

});

Verwandte Themen