2012-03-29 30 views
11

Estoy usando el menú de selección de jQuery UI y tengo problemas para establecer el valor de un prestado seleccionado. Parece cambiar la opción seleccionada en la selección subyacente, pero el menú de selección no muestra el cambio. Estoy llamando .selectmenu ('refresh', true) pero no pasa nada.jQuery UI El valor del menú Selectmenu establecido dinámicamente no cambia el valor seleccionado visible

Aquí se muestra un ejemplo: http://jsfiddle.net/sociobit/wYBeL/

+0

no estoy seguro de por qué, pero la eliminación de la Seleccione Menú() llamada la fija: http : //jsfiddle.net/Brpcu/2/. – jimw

+0

@jimw Sin el menú de selección, ahora son solo listas desplegables genéricas, necesito el menú de selección para el estilo – SocioBit

+0

De hecho, pero afortunadamente eso ayudará a resolver lo que está mal. ¿Qué hace la llamada selectmenu hacer? Si examina el DOM antes y después de la llamada, ¿qué cambia? – jimw

Respuesta

13

Hiya Así demostración (Solución) http://jsfiddle.net/wYBeL/43/ en lugar de tratar de refresco .selectmenu("value", selectedValue); O (Hack) http://jsfiddle.net/wYBeL/36/ (mantiene la configuración de selectpopup tuya :) Lo que alguna vez le convenga

Así que revisé el DOM usando Firebug y parece que selectmenu() style: popup agrega una capa adicional de estilo, pero el valor # sel2 está configurado correctamente y solo necesita configurar el elemento correcto con el valor correcto. Creo que la actualización funcionará cuando tengas un ajax rellenando un menú desplegable y refrescando parte de la página.

Hmm, puede intentar mirar API para más detalles y En caso si usted no necesita emergente Seleccione Menú y luego sin ella esto va a funcionar tan bien como @jiimw dijo: (pero el estilo va raro): http://jsfiddle.net/wYBeL/35/; Por favor, digale Sé que si esto no ayuda, eliminaré la publicación.

eslabón adicional: http://wiki.jqueryui.com/w/page/12138056/Selectmenu

esperanza tanto ayuda.

Código jQuery aquí

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

      } 

     }); 
    });​ 

Saludos

+0

muchas gracias, de primera clase! Solucionado mi problema. – SocioBit

+0

¡No se preocupe en absoluto! Me alegro de que ayudó :), ¡salud! –

+4

El primer enfoque con el método 'valor' ya no funciona en JqueryMobile 1.1. "Error: no hay tal 'valor' de método para la instancia de widget de selección de menú" – Wytze

Cuestiones relacionadas