Ver Mensaje Individual
  #11 (permalink)  
Antiguo 17/01/2008, 15:16
Avatar de JuanKa
JuanKa
 
Fecha de Ingreso: septiembre-2004
Mensajes: 468
Antigüedad: 19 años, 8 meses
Puntos: 1
Re: Recoger array de textbox para validar

Buenas Tardes Nuevamente a todos.

Este post se refiere a los colores (parecido a de las tallas).


Estoy haciendo una funcion para validar que al menos un checkbox este marcado, caso contrario me arroje un mensaje con el alert. El codigo es el siguiente:

Código HTML:
<form action="ventas.php?a=pack_actualizar" onsubmit="return verificar_tallas_colores()" name="frm_pack_cantidad" id="frm_pack_cantidad" method="post"> 

	<table width="300" border="0" cellspacing="0" cellpadding="0" align="center" id="divs_colores">
	<tr>
		<? while ($colores = $bd->bbdd_fetch($EJECT_colores)){
			$SQL_color_descripcion = "SELECT * FROM colores WHERE id= '$colores[id_color]' ";
			$EJECT_color_descripcion  = $bd->bbdd_query($SQL_color_descripcion);
			$descripcion_color = $bd->bbdd_result($EJECT_color_descripcion,0,'descripcion');
		?>	
			<td><input name="colores[]" type="checkbox"  value="<?=$colores["id_color"]?>" ><div align="center"><?=$descripcion_color?></div></td> 					
		 <? } ?>
	</tr>
	</table>
</form> 
y en la funcion verificar_tallas_colores() es:

Código:
function verificar_tallas_colores(){ 

	var xx = 0;
	var cantid = 0;
	cantid = document.forms['frm_pack_cantidad']['colores[]'].length;

	for ( var y=0; y < cantid; y++) { 
		if (document.forms['frm_pack_cantidad']['colores[]'][y].checked) { 
		xx =  xx + 1; 
		} 
	} 
	if (xx == 0){
		alert('¡Seleccione al menos un COLOR');
	return false;
	}
	return true; 
}
En el form del archivo php puede arrojar como resultado un color como varios colores, EL PROBLEMA ES CUANDO LA PRENDA TIENE UN COLOR, por mas que lo marque me envia el mensaje del alert('¡Seleccione al menos un COLOR'); pero cuando la consulta arroja dos o mas resultados ; me va bien, es decir si por ejemplo la consulta arroja 3 colores y marco 1 o 2 o los 3 checkbox alli es correcto(puedo marcar como minimo 1 dejando libre el resto).

No sé donde puede estar el error, en la funcion de javascript.

Gracias y saludos a todos