Archivo de la etiqueta: formulario

Checkbox como Radio Button con jQuery

El siguiente es un pegueño código que inventé para solucionar un problema que tuve, y fue como hacer que los checkbox se comporten como radio buttons. Seguramente usted se preguntará ¿porqué necesitaría hacer checkbox como radio si para eso es que existen los radio buttons? bueno, la respuesta simplemente es porque en el formulario se veían feos los radio buttons  (redondos) donde todas las demás opciones disponibles eran con checkbox (cuadrados).

Aquí dejo el pedazo de código:

EL HTML

<input type="checkbox" name="comoradio" value="Item 1">Item 1<br />
<input type="checkbox" name="comoradio" value="Item 2">Item 2<br />
<input type="checkbox" name="comoradio" value="Item 3">Item 3<br />
<input type="checkbox" name="comoradio" value="Item 4">Item 4<br />

Su jQuery

$("input[type=checkbox]").click(function() {
checkclic = $(this);
categoria = $(this).attr("name");
if (categoria == "comoradio") {
total = $("input[type=checkbox][name='comoradio']");
i = 1;
total.each(function(){
actual = $(this);
es = $(this).is(":checked");
if (es == true) {
i++;
if (i > 1) {
$(this).attr('checked', false);
$(checkclic).attr('checked', true);
}
}
});
}
});

La Explicación

En el HTML lo que se debe considerar es que el atributo “name” de los input que queramos que funcionen como radio sea el mismo, en éste caso es “comoradio”. Ahora, en el js es donde entra la magia para hacer que cuando se haga clic en un elemento input, del tipo checkbox se realice tal acción, en éste caso, comprobar que si el elemento actual no está checado lo chequee y le quite el check al input previamente seleccionado, ¿ se entendió? … ojalá que sí, pues creo no expliqué muy bien.

Luego de la magnifica explicación, ya podemos tener funcionando nuestros checkboxes como radio buttons.

Seguramente ésto se puede hacer con un código mucho más corto, simple, bonito, etc, etc., pero de momento es lo que me salió y funcionó.

Saludos!! PM.

Y asi funciona serialize() en jQuery

La verdad es que el método .serialize() de jQuery es un salvavidas a la hora de procesar los datos que son introducidos en un formulario, el cual devuelve una cadena de texto preformateada lista para ser trabajada por algún sistema que preparemos para lo que queramos.

La idea de utilizar serialize es para ahorrarnos el trabajo de extraer los 50 o más valores que tengan 50 o más campos de texto que hayamos hecho para enviar mediante el parámetro data en ajax… pero……… la idea es hacerlo bien, y no pasarse una hora intentando encontrar el error del javascript, cuando solo faltaba escribir el atributo name a cada input…

Sigue leyendo