2016-03-23 6 views
4

Ich habe ein bootstrap multiselect html Element, das ich mit Daten von einem Webserviceaufruf fülle, der eine Liste der Regionen in Neuseeland erhält. Ich muss diese Optionen in die <select> laden und nicht die oberste Option standardmäßig auswählen.Option in <select> abwählen - bootstrap multiselect

Ich habe alles versucht, was über die Bootstrap Multiselect in Funktionen und Optionen eingebaut ist. Nichts wird funktionieren. So verwende ich Vanille javascript oder Vanille jquery, um direkt ins plain html zu gehen und die erste Option abzuwählen.

Alle Arbeiten an dieser this jsfiddle in getan werden kann

hatte ich eine minimierte externe Ressource einfügen kopieren (xml2json.min.js) in den oberen Teil der JavaScript-Editor, weil es nicht gut spielte, als ich versuchte, um es als externe Ressource hinzuzufügen.

Ich habe dies versucht:

$("ul.multiselect-container").find("li").removeClass("active"); 

Und es funktioniert nicht. Es entfernt die aktive Klasse, aber deaktiviert die Option nicht. Wie deaktiviere ich die Option?

Ich habe dies versucht:

$("ul.multiselect-container").find('input[type="radio":checked]').prop('checked', false); 

Es ist nicht die Option nicht deaktivieren.

Bitte überprüfen Sie, ob Sie die oberste Option der Auswahl abwählen können.

Also die JSFiddle bei URL wie oben, aber endet in 182 ist mein Refactoring zu versuchen, es für die Menschen einfacher zu verstehen, aber es endete nicht richtig auf meinem Laptop Freunde zu arbeiten.

Wenn Sie das Plugin als <select multiple=true> verwenden, wählt es standardmäßig nicht die oberste Option. Allerdings brauche ich das gleiche Verhalten mit einem normalen <select>

+0

Haben Sie codePen oder jsFiddle für diesen einen –

+0

haben @SridharGudimela http://jsfiddle.net/bkzb272j/181/ dank – BeniaminoBaggins

+0

Ich habe versucht, ausgewählt = Hinzufügen von Zeile in jeder Option 'false' keine 38 in deiner Hand, die die erste Option tatsächlich deaktiviert hat. Jedoch hat es den letzten ausgewählt. Werde mehr versuchen und sehen, ob es eine bessere Möglichkeit gibt, alles abzuwählen oder mit selectedIndex = -1. –

Antwort

1

Ich hatte nur einen Blick in das Plugin, und hier ist, was ich verstanden, To remove default selection Sie Ihre Auswahl als multiple = ‚multiple‘ gesetzt haben müssen, Dies ist, wenn Sie unten eine Checkbox in der Drop sehen können, anstatt Radio Knöpfe.

Wenn Sie diese Mehrfachoption nicht setzen, haben Sie eine Optionsschaltfläche, die standardmäßig den ersten Wert festlegt. Hier ist der Fiddle which doesnt not select any default Wert. Ich habe gerade die Option multiple='multiple' zu Ihrem dynamischen Auswahl-Tag hinzugefügt.

Um die Option Mehrfachauswahl festlegen zu lassen und gleichzeitig nur eine auswählen zu können, verwenden Sie den folgenden Code. Sie benötigen eine Code-Block mit diesem

 $("body").prepend("<select id=\"a-select\" multiple='multiple' >"    
     + optionsText + 
     "</select>"); 

     $('#a-select').multiselect({ 
     on: { 
      change: function(option, checked) { 
       alert('sdd'); 
       var values = []; 
       $('#a-select').each(function() { 
        if ($(this).val() !== option.val()) { 
         values.push($(this).val()); 
        } 
       }); 

       $('#a-select').multiselect('deselect', values); 
      } 
     } 
    }); 

Logic aus http://davidstutz.github.io/bootstrap-multiselect/#further-examples finden hier das 5. Beispiel genommen zu ersetzen, die Simulate single selections using checkboxes sagt.

+0

Danke. Ich habe bereits mehrere Auswahlmöglichkeiten auf meiner Website, die nicht standardmäßig eine Option auswählen. Tut mir leid, ich hätte das in der Frage erwähnen sollen. Ich brauche auch einige einzelne Auswahlmöglichkeiten, und sie sollten standardmäßig keine Option auswählen, um mit den Multiselects konsistent zu sein. Es scheint komisch, dass das Plugin ihre Multi-Selects und Single-Selects inkonsistent gemacht hat. – BeniaminoBaggins

+0

Ok, es gibt einen Weg, um zu erreichen, was du willst, aber deine Geige hat viele Fehler. Ich denke, es ist meine Logik zu brechen. Wie auch immer, ich werde den Code hier hinzufügen und sehen, ob du es am Ende funktionierst. –

+1

Ich habe die Multiselect verhalten wie eine einzelne Auswahl. Hier ist die Arbeit jsfiddle: http://jsfiddle.net/bkzb272j/199/ – BeniaminoBaggins

0

Fügen Sie eine leere Option an der Spitze des Elements select.

1

Ich habe die Methode "Auswahl aufheben" wie folgt neu definiert.

this.deselect = function() { 
     $('input[type="radio"]:checked').attr('checked', false); 
    $(".multiselect-selected-text").text("None selected"); 
    } 

JsFiddle Demo

Verwandte Themen