2012-03-29 7 views
11

Ich bin mit jQuery UI Selectmenu und habe Schwierigkeiten mit dem Wert eines ausgewählten rendered Einstellung. Es scheint die ausgewählte Option in der zugrunde liegenden Auswahl zu ändern, aber das Auswahlmenü zeigt die Änderung nicht an. Ich rufe .selectmenu ('refresh', true), aber nichts passiert. HierjQuery UI Selectmenu Wert ändert sich dynamisch nicht sichtbar ausgewählten Wert

ein Beispiel: http://jsfiddle.net/sociobit/wYBeL/

+0

Ich bin nicht sicher, warum, aber die selectmenu Entfernen() -Aufruf behebt: http : //jsfiddle.net/Brpcu/2/. – jimw

+0

@jimw Ohne die selectmenu sie sind jetzt nur allgemeine Drop-Listen, ich brauche die selectmenu für das Styling – SocioBit

+0

der Tat, aber hoffentlich wird das helfen, arbeiten, was falsch ist. Was macht der Wählmenruf? Wenn Sie das DOM vor und nach dem Anruf untersuchen, was ändert sich? – jimw

Antwort

13

Hiya So Demo (Lösung) http://jsfiddle.net/wYBeL/43/ statt refresh versuchen .selectmenu("value", selectedValue); OR (Hack) http://jsfiddle.net/wYBeL/36/ (hält die selectpopup Einstellung von Ihnen :) Was auch immer Ihnen passt

so überprüfte ich den DOM Firebug und es scheint, die selectmenu() Stil: Pop-up sorgt für zusätzliche Schicht aus Styling, aber der # sel2 Wert richtig eingestellt ist und Sie nur einrichten müssen das richtige Element mit korrektem Wert. Ich rechne damit arbeiten aktualisiert, wenn Sie eine Ajax haben eine Drop-Down-bevölkern und einen Teil der Seite zu aktualisieren.

Hmm, Sie können versuchen, API für weitere Details zu sehen und im Fall, wenn Sie kein Auswahlmenü Popup benötigen, dann ohne es dies funktioniert auch wie @jiimw sagte: (BUt Styling geht komisch): http://jsfiddle.net/wYBeL/35/; Bitte lassen Ich weiß, wenn das nicht hilft, werde ich Post entfernen.

zusätzlicher Link: http://wiki.jqueryui.com/w/page/12138056/Selectmenu

Hoffnung beide helfen.

JQuery-Code hier

$(function() { 

    $('select').selectmenu({ 
     style: 'popup' 
    }); 

    $('#chksame').click(function() { 
     if ($(this).is(':checked')) { 
      var selectedValue = $('#sel1').val(); 
      $('#sel2').val(selectedValue); 

      $('#sel2').selectmenu("value", selectedValue); 

     } 

    }); 
});​ 

** OR **

$(function() { 

     $('select').selectmenu({ 
      style: 'popup' 
     }); 

     $('#chksame').click(function() { 
      if ($(this).is(':checked')) { 
       var selectedValue = $('#sel1').val(); 
       $('#sel2').val(selectedValue); 

       // set the right element with the select value 
       $('#sel2-button span').text($("#sel2 option[value='" + selectedValue +"']").text()); 

       $('#sel2').selectmenu('refresh', true); 

      } 

     }); 
    });​ 

Prost

+0

vielen Dank, erstklassig! Mein Problem wurde behoben. – SocioBit

+0

Keine Sorgen! Froh, dass es geholfen hat :), Prost! –

+4

Der erste Ansatz mit der Methode ‚Wert‘ arbeiten in JqueryMobile 1.1 mehr nicht. "Fehler: kein solcher Methodenwert für die Auswahlmenü-Widget-Instanz" – Wytze

Verwandte Themen