Ver Mensaje Individual
  #12 (permalink)  
Antiguo 12/01/2007, 02:29
Avatar de caricatos
caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 8 meses
Puntos: 1284
Re: problema con la validacion de checkbox

Hola:

Si trabajas con asp y no es obligatorio el uso de corchetes, puedes quitarlos en todas las ocurrencias...

Lo de la función, acabo de corregirla ya que justamente me había olvidado de poner esos corchetes (que pueden verse en rojo)

Preparé una página completa:

Código:
<html>
	<head>
		<title>
			recepción
		</title>
		<script type="text/javascript">
			var checkflag = false;
			function check(field) {
				checkflag = !checkflag;
				for (i = 0; i < field.length; i++)
					field[i].checked = checkflag;
				return (checkflag) ? "Uncheck All":"Check All";
			}

			function valida_inscritos(f) {
				var valida = false;
				total = f["InscritoSeleccionado"].length;
				for (var i = 0; i < total; i ++)
					valida = (valida || f["InscritoSeleccionado"][i].checked);
				if (!valida) alert ("Debe seleccionar un registro");
				return valida;
			}
		</script>
	</head>
	<body >
		<form name="form1" action="javascript:alert('enviado')" onsubmit="return valida_inscritos(this);">
			<input name="Inscritos" value="Check All" type="checkbox" onclick="this.value=check(this.form.InscritoSeleccionado)">Cabecera
			<input name="InscritoSeleccionado" value="valor1" type="checkbox">Registro1
			<input name="InscritoSeleccionado" value="valor2" type="checkbox">Registro2
			<br />
			<button type="submit" >enviar</button>
		</form>	
	</body>
</html>
Por cierto, me parece que no tiene sentido lo que retorna la función check, tal vez sea mejor ponerlo como contenido (innerHTML) de un label asociado a ese checkbox

Código:
<input id="Inscritos" value="Check All" type="checkbox" onclick="check(this.form.InscritoSeleccionado)">
<label for="Inscritos" id="inscri" >Check All</label>
Y la última línea de la función check:
Código:
document.getElementById("inscri").innerHTML = (checkflag) ? "Uncheck All":"Check All";
Ya no debería retornar nada...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo