Óscar Mateu
Tengo los siguientes botones de opción de Bootstrap:
<div class="btn-group" id="filterDay" data-toggle="buttons">
<label class="btn btn-default blue">
<input type="radio" class="toggle" value="1"> Monday
</label>
<label class="btn btn-default blue">
<input type="radio" class="toggle" value="2"> Tuesday
</label>
<label class="btn btn-default blue">
<input type="radio" class="toggle" value="3"> Wednesday
</label>
<label class="btn btn-default blue">
<input type="radio" class="toggle" value="4"> Thursday
</label>
<label class="btn btn-default blue">
<input type="radio" class="toggle" value="5"> Friday
</label>
<label class="btn btn-default blue">
<input type="radio" class="toggle" value="6"> Saturday
</label>
<label class="btn btn-default blue active">
<input type="radio" class="toggle" value="0"> Sunday
</label>
</div>
Estoy tratando de obtener el valor del botón activo cuando envío el formulario, sin crear un onclick
evento, simplemente obteniendo el botón activo de la $('#filterDay')
grupo de botones Debería ser fácil, pero no encontré una manera de obtener el valor. Intenté varios ejemplos, pero todos no funcionaron.
Actualizar:
Este es el código HTML “impreso”:
<label class="btn btn-default blue">
<input type="radio" class="toggle" value="6"> Saturday
</label>
<label class="btn btn-default blue active">
<input type="radio" class="toggle" value="0"> Sunday
</label>
El active
valor en el class
El atributo es lo que cambia cuando hago clic en el botón.
Arun P Johny
En el controlador de envío de formulario, use el :checked
selector.
var filterDay = $('#filterDay input:radio:checked').val();
-
Entonces intenta
var filterDay = $('#filterDay label.active input').val()
– Arun P Johny
10 de febrero de 2014 a las 10:07
-
Es mejor eliminar el comentario anterior e incluirlo en la respuesta, eso sería más claro.
– Kevin M. Mansour
29 de mayo a las 20:46
franco
Debe establecer un común name
atributo para identificar el formulario:
<div class="btn-group" id="filterDay" data-toggle="buttons">
<label class="btn btn-default blue">
<input type="radio" class="toggle" name="toggle" value="1"> Monday
</label>
<label class="btn btn-default blue">
<input type="radio" class="toggle" name="toggle" value="2"> Tuesday
</label>
<label class="btn btn-default blue">
<input type="radio" class="toggle" name="toggle" value="3"> Wednesday
</label>
<label class="btn btn-default blue">
<input type="radio" class="toggle" name="toggle" value="4"> Thursday
</label>
<label class="btn btn-default blue">
<input type="radio" class="toggle" name="toggle" value="5"> Friday
</label>
<label class="btn btn-default blue">
<input type="radio" class="toggle" name="toggle" value="6"> Saturday
</label>
<label class="btn btn-default blue active">
<input type="radio" class="toggle" name="toggle" value="0"> Sunday
</label>
</div>
Y para obtener el valor de esta manera:
$('input[name=toggle]:checked').val();
usuario3292306
Prueba esto:
$( "input:checked" ).val();
Consulte la documentación de jQuery para obtener más información sobre :checked
seleccionador y .val
atributo.
davidmars
Algún problema de lógica está en el código:
<label class="btn btn-default blue active">
<input type="radio" class="toggle" value="0"> Sunday
</label>
La etiqueta tiene la active
class, por lo que Bootstrap lo mostrará como activo pero la radio de entrada contenida no está marcada, por lo que en HTML puro, no está marcada.
Código correcto:
<label class="btn btn-default blue active">
<input type="radio" checked="checked" class="toggle" value="0"> Sunday
</label>
lynne
Usa jQuery :checked
selector.
Kevin M. Mansour
Usa jQuery .prop()
atributo, así:
$('#radioButtonName').prop('checked');