2012-03-29 2 views
11

Sto usando il menu di selezione dell'interfaccia utente jQuery e sto riscontrando problemi nell'impostazione del valore di un rendering selezionato. Sembra cambiare l'opzione selezionata nella selezione sottostante, ma il menu di selezione non mostra la modifica. Sto chiamando .selectmenu ('refresh', true) ma non succede nulla.jQuery UI Il menu di scelta rapida impostato dinamicamente non modifica il valore selezionato visibile

Ecco un esempio: http://jsfiddle.net/sociobit/wYBeL/

+0

non sono sicuro perché, ma la rimozione del Selezionare Menu() chiamata corregge: http : //jsfiddle.net/Brpcu/2/. – jimw

+0

@jimw Senza il menu di selezione adesso sono solo elenchi generici, ho bisogno del menu di selezione per lo styling – SocioBit

+0

In effetti, ma spero che possa aiutarti a capire cosa non va. Che cosa fa la chiamata del menu di selezione? Se esamini il DOM prima e dopo la chiamata, cosa cambia? – jimw

risposta

13

Hiya Così demo (Solution) http://jsfiddle.net/wYBeL/43/ invece di aggiornamento provare .selectmenu("value", selectedValue); OR (Hack) http://jsfiddle.net/wYBeL/36/ (mantiene l'impostazione selectpopup tuo :) Che cosa mai si addice

Così ho controllato il DOM usando firebug e sembra lo stile selectmenu(): popup aggiunge un ulteriore livello di styling ma il valore # sel2 è impostato correttamente e hai solo bisogno di impostare l'elemento giusto con il valore corretto. Penso che l'aggiornamento funzionerà quando si avrà un ajax che popola un menu a discesa e una parte rinfrescante della pagina.

Hmm, puoi provare a guardare l'API per maggiori dettagli e Nel caso in cui se non hai bisogno di popup di selezione, quindi senza di esso questo funzionerà pure come @jiimw ha detto: (BUt lo styling diventa strano): http://jsfiddle.net/wYBeL/35/; so se questo non aiuta rimuoverò post.

collegamento in più: http://wiki.jqueryui.com/w/page/12138056/Selectmenu

Speranza entrambi aiuta.

JQuery codice qui

$(function() { 

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

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

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

     } 

    }); 
});​ 

** ** O

$(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); 

      } 

     }); 
    });​ 

Acclamazioni

+0

grazie mille, di prim'ordine! Risolto il problema – SocioBit

+0

Nessun problema! Sono contento che l'abbia aiutato :), evviva! –

+4

Il primo approccio con il metodo 'value' non funziona più in JqueryMobile 1.1. "Errore: nessun 'metodo' di tale metodo per l'istanza del widget selectmenu" – Wytze