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