Foros del Web » Programando para Internet » Jquery »

obtener valor de jQuery UI buttonset

Estas en el tema de obtener valor de jQuery UI buttonset en el foro de Jquery en Foros del Web. Estoy usando jquery ui buttonset para darle estilo a los radio buttons. Es esto: http://jqueryui.com/demos/button/#radio Por alguna razón, el plugin no cambia el estado de ...
  #1 (permalink)  
Antiguo 28/02/2012, 17:52
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 8 meses
Puntos: 101
Busqueda obtener valor de jQuery UI buttonset

Estoy usando jquery ui buttonset para darle estilo a los radio buttons. Es esto:
http://jqueryui.com/demos/button/#radio

Por alguna razón, el plugin no cambia el estado de los radio buttons cuando se clickea sobre uno de ellos. Y no encuentro manera de obtener el estado actual a la hora de enviar el formulario por ajax.

Este el el codigo:
Código HTML:
Ver original
  1. ...
  2. <tr>
  3.                                 <td class="label"><div>Pop Ups:</div></td>
  4.                                 <td class="iphone-radio">
  5.                                     <input type="radio" id="radio1" name="popups" val="on" /><label for="radio1">ON</label>
  6.                                     <input type="radio" id="radio2" name="popups" checked="checked> val="off" /><label for="radio2">OFF</label>
  7.                                 </td>
  8.                             </tr>
  9.                             <tr>
  10.                                 <td class="label"><div>Notificaciones:</div></td>
  11.                                 <td class="iphone-radio">
  12.                                     <input type="radio" id="radio3" name="notifications" val="on" /><label for="radio3">ON</label>
  13.                                     <input type="radio" id="radio4" name="notifications" val="off" checked="checked" /><label for="radio4">OFF</label>
  14.                                 </td>
  15.                             </tr>
  16. ...

Código Javascript:
Ver original
  1. j( "#preferences .iphone-radio" ).buttonset();

La documentacion del buttonset no dice como obtener el valor actual!! Y no encuentro en internet nada util.

En fin, una vez inicializados mis grupos de radio button, aquellos que tienen el atributo "checked" por default nunca lo pierden, y a los demas nunca se les adjudica.

Alguna pista?
  #2 (permalink)  
Antiguo 29/02/2012, 09:05
Avatar de quike88  
Fecha de Ingreso: agosto-2008
Mensajes: 471
Antigüedad: 16 años, 4 meses
Puntos: 87
Respuesta: obtener valor de jQuery UI buttonset

Hola,

Tienes un par de errores en el HTML, como por ejemplo en esta linea en lugar de comilla dobre tienes un ">":

Código HTML:
Ver original
  1. <input type="radio" id="radio2" name="popups" checked="checked" val="off" /><label for="radio2">OFF</label>

Esto no se si sea un error o lo hiciste intencionalmente, pero la propiedad de la etiqueta input es value y no val.

Con esas correcciones, deberías poder recibir los datos en la página que se envía el formulario, si quieres obtener el valor seleccionado por JavaScript sería así:

Código Javascript:
Ver original
  1. //para los radiobuttons con nombre "notifications"
  2. $('input:radio[name=notifications]:checked').val();

Saludos.
  #3 (permalink)  
Antiguo 29/02/2012, 11:10
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 8 meses
Puntos: 101
Respuesta: obtener valor de jQuery UI buttonset

Gracias. Mira, lo de las comillas fue al borrar el codigo PHP cuando publique en el foro. En mi archivo esta bien escrito.

En cuanto al value, es algo que agregué como ultima prueba. Gracias por señalar que esta mal escrito. De cualquier manera debería funcional sin el atributo "value", tal como aparece en el demo:
http://jqueryui.com/demos/button/#radio

Código HTML:
Ver original
  1. <div id="radio">
  2.         <input type="radio" id="radio1" name="radio" /><label for="radio1">Choice 1</label>
  3.         <input type="radio" id="radio2" name="radio" checked="checked" /><label for="radio2">Choice 2</label>
  4.         <input type="radio" id="radio3" name="radio" /><label for="radio3">Choice 3</label>
  5.     </div>

Igual, vuelvo a repetir que el demo de jquery UI no cambia el atributo checked al clickear sobre un boton. Es decir, evidentemente no se basan en el input original. Pero tampoco proveen metodos para obtener el valor de los <span> que generan para dar estilo.
  #4 (permalink)  
Antiguo 29/02/2012, 13:24
Avatar de quike88  
Fecha de Ingreso: agosto-2008
Mensajes: 471
Antigüedad: 16 años, 4 meses
Puntos: 87
Respuesta: obtener valor de jQuery UI buttonset

Pues si cambia el checked, tal vez no lo veas con el inspector de elementos. ¿Probaste con lo que puse?

Código Javascript:
Ver original
  1. $('input:radio[name=notifications]:checked').val();

Saludos.
  #5 (permalink)  
Antiguo 29/02/2012, 19:37
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 8 meses
Puntos: 101
Respuesta: obtener valor de jQuery UI buttonset

Ok mañana lo pruebo. Mil Gracias. Venía intentando con .serialize() pero mejor será un bucle each con esto que planteas, a ver si esta ves si anda.
  #6 (permalink)  
Antiguo 01/03/2012, 08:26
 
Fecha de Ingreso: diciembre-2009
Ubicación: Misiones
Mensajes: 867
Antigüedad: 15 años
Puntos: 65
Respuesta: obtener valor de jQuery UI buttonset

funciona de igual forma que sin el ui, por eso no dice nada en la documentación porque tenés que tratar el html para obtener el valor
si no le das un valor no sabrás cuál es el seleccionado porque te dará como resultado radio=on para cualquiera, capaz por eso te parece que no cambia el valor

Código HTML:
Ver original
  1.     <div id="radio">
  2.         <input type="radio" id="radio1" name="radio" value="1" /><label for="radio1">Choice 1</label>
  3.         <input type="radio" id="radio2" name="radio" value="2" checked="checked" /><label for="radio2">Choice 2</label>
  4.         <input type="radio" id="radio3" name="radio" value="3" /><label for="radio3">Choice 3</label>
  5.     </div>
  6.     <input type="submit" />
  7. </form>
Código Javascript:
Ver original
  1. $( "#radio" ).buttonset();
  2.         $('form').submit( function(){
  3.             alert( $(this).serialize() );
  4.             return false;
  5.         });

Última edición por Dany_s; 01/03/2012 a las 08:35
  #7 (permalink)  
Antiguo 23/05/2012, 09:28
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 8 meses
Puntos: 101
Respuesta: obtener valor de jQuery UI buttonset

Dany: ya paso un monton de tiempo, pero acabo de retomar el proyecto. Y si, funciona como dijiste, con un value. Sabes? Tenía escrito val en vez de value (se puede ver en mi primer post). Cambiando el nombre de ese atributo, ya funciona. Mil gracias!

Etiquetas: ajax, formulario, input
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:00.