Foros del Web » Programando para Internet » Javascript »

Checkbox que no actua

Estas en el tema de Checkbox que no actua en el foro de Javascript en Foros del Web. Pues eso, el checkbox de aceptacion de normas que controla el javascript, no interactua con el, por mas que remiro el codigo, no soy capaz ...
  #1 (permalink)  
Antiguo 14/04/2007, 11:23
 
Fecha de Ingreso: abril-2007
Mensajes: 31
Antigüedad: 17 años
Puntos: 0
Checkbox que no actua

Pues eso, el checkbox de aceptacion de normas que controla el javascript, no interactua con el, por mas que remiro el codigo, no soy capaz de verle nada malo, pues antes de borrar una capa dentro del form iba todo perfecto, ahora una vez eliminada esa capa, que dentro tenia un type="file" tal cual esta el javascript, el mismo script funciona solo hasta la confirmacion de contraseña, pero no comprueba el checkbox y devuelve un true.

En Head
Cita:
<script language="javascript">
function ValidarContacto(form) {
if (form.nombre.value == "") {
alert("Escribe tu Nombre.");
form.nombre.focus();
return false;
}

if (form.apellidos.value == "") {
alert("Escribe tus apellidos.");
form.apellidos.focus();
return false;
}
if (form.edad.value == "") {
alert("Escribe tu edad.");
form.edad.focus();
return false;
}
if (form.pais.value == "SELECT") {
alert("Elije tu pais.");
form.pais.focus();
return false;
}
{
var pos1, pos2, bOk = true;
var sDir = document.form.email.value;
if (sDir == ""){
alert("Escribe tu dirección E-mail");
document.form.email.focus();
return false;
}
pos1 = sDir.indexOf('@', 0);
pos2 = sDir.indexOf('.', 0);
bOk = bOk && (pos1 > 0);
bOk = bOk && (pos2 != -1);
bOk = bOk && (pos1 < pos2 - 1);
bOk = bOk && (pos2 < sDir.length - 1);
if (!bOk){
alert("Dirección de correo inválida");
document.form.email.focus();
return false;
}
}
if (form.contraseña.value == "") {
alert("Escribe una contraseña.");
form.contraseña.focus();
return false;
}
if (form.contraseña.value.length < 6)
{
alert('Debes introducir una contraseña con un mínimo de 6 caracteres');
form.contraseña.value = ""; form.contraseña.focus();
return false;
}
if(form.email.value == form.contraseña.value) {
alert("La contraseña no puede ser igual al nombre de usuario (E-mail)");
form.contraseña.value = ""; form.contraseña.focus();
return false;
}
if (form.contraseña2.value == "") {
alert("Confirma tu contraseña.");
form.contraseña.focus();
return false;
}
{
if(form.contraseña.value == form.contraseña2.value)
{ form.file.focus();}
else
{
alert("La repetición de la contraseña no coincide, vuelve a introducirla.");
form.contraseña2.value = ""; form.contraseña2.focus(); return false;
}
}
if (form.accond.checked)
form.submit()
else
alert("Debes de aceptar las condiciones antes de enviar");
return false;

document.body.style.cursor = "wait";
return true;
}
</script>
En Form

Cita:
<form action="" method="post" enctype="multipart/form-data" name="form" onSubmit="return ValidarContacto(this)" >
<table width="100%" border="0" cellspacing="3px">
<tr>
<td width="46%"><div align="right">Nombre</div></td>
<td width="54%"><div align="left">
<input name="nombre" type="text" class="comentario" id="nombre" size="15" />
</div></td>
</tr>

<tr>
<td><div align="right">Apellidos</div></td>
<td><div align="left">
<input name="apellidos" type="text" class="comentario" id="apellidos" size="15" />
</div></td>
</tr>
<tr>
<td><div align="right">Edad</div></td>

<td><div align="left">
<input name="edad" type="text" class="edad" id="edad" size="5" maxlength="2" onKeyPress="return acceptNum(event)" />
</div></td>
</tr>
<tr>
<td><div align="right">Pais</div></td>
<td><div align="left">
<select name="pais" size="1" class="comentario" id="select pais" >


<option value="SELECT">SELECT</option>

<option value="US">United States</option>

<option value="GB">United Kingdom</option>


<option value="CA">Canada</option>


<option value="WF">Wallis and Futuna</option>

<option value="EH">Western Sahara</option>

<option value="YE">Yemen</option>


<option value="ZM">Zambia</option>

<option value="ZW">Zimbabwe</option>

</select>

</div></td>
</tr>
<tr>
<td><div align="right">E-mail</div></td>
<td><div align="left">
<input name="email" type="text" class="comentario" id="email" size="15" />
<span class="Estilo1 Estilo6">Sera tu id.usuario </span></div></td>
</tr>

<tr>
<td><div align="right">Contrase&ntilde;a</div></td>
<td><div align="left">
<input name="contraseña" type="password" class="comentario" id="contrase&ntilde;a" size="15" />
<span class="Estilo1 Estilo6">min. 6 caracteres</span> </div></td>
</tr>
<tr>

<td><div align="right">Repetir contrase&ntilde;a</div></td>
<td><div align="left">
<input name="contraseña2" type="password" class="comentario" id="rcontrase&ntilde;a" size="15" />
</div></td>

<tr>
<td><div align="center"><span class="Estilo1">He leido las <a href="Index2.html"><u>condiciones</u></a> - </span><span class="Estilo2">Acepto</span>
<input name="accond" type="checkbox" id="aceptarcond" value="checkbox" />

</div></td>
<td>
<div align="left">
<input name="Submit2" type="submit" class="boton_enviar" value="Enviar" />
</div></td>
</tr>
</table>
</form>
  #2 (permalink)  
Antiguo 14/04/2007, 19:23
 
Fecha de Ingreso: abril-2006
Ubicación: Colombia
Mensajes: 648
Antigüedad: 18 años
Puntos: 3
Re: Checkbox que no actua

Hola

Bueno, que explorador usas??

Pues yo hice pruebas en iexplorer 6.0.2900.2180 y funciona bien tu código tal cual esta, pero si lo pruebo en firefox 2.0.0.3 en efecto sigue derecho sin solicitar el check de las condiciones.

Al ver esto me puse a prueba y error pues tu código no le veia nada extraño aparte de las llaves que abrian y cerraban codigo sin tener un if o algo que hiciera abrir o cerrar las mismas, pero si fuera eso pense pues no ejecutaria ninguna parte del script al encontrar errores, entonces lo que hice fue subir la condición del check, te dejo el código

Código:
<script language="javascript">
function ValidarContacto(form)
{
    if (form.nombre.value == "")
    {
        alert("Escribe tu Nombre.");
        form.nombre.focus();
        return false;
    }

    if (form.apellidos.value == "")
    {
        alert("Escribe tus apellidos.");
        form.apellidos.focus();
        return false;
    }

    if (form.edad.value == "")
    {
        alert("Escribe tu edad.");
        form.edad.focus();
        return false;
    }
    
    if (form.pais.value == "SELECT")
    {
        alert("Elije tu pais.");
        form.pais.focus();
        return false;
    }
{
    var pos1, pos2, bOk = true;
    var sDir = document.form.email.value;
    if (sDir == "")
    {
    alert("Escribe tu dirección E-mail");
    document.form.email.focus();
    return false;
    }
    pos1 = sDir.indexOf('@', 0);
    pos2 = sDir.indexOf('.', 0);
    bOk = bOk && (pos1 > 0);
    bOk = bOk && (pos2 != -1);
    bOk = bOk && (pos1 < pos2 - 1);
    bOk = bOk && (pos2 < sDir.length - 1);
    if (!bOk)
    {
        alert("Dirección de correo inválida");
        document.form.email.focus();
        return false;
    }
}
    if (form.contraseña.value == "")
    {
        alert("Escribe una contraseña.");
        form.contraseña.focus();
        return false;
    }
    if (form.contraseña.value.length < 6)
    {
        alert('Debes introducir una contraseña con un mínimo de 6 caracteres');
        form.contraseña.value = ""; form.contraseña.focus();
        return false;
    }
    if(form.email.value == form.contraseña.value)
    {
        alert("La contraseña no puede ser igual al nombre de usuario (E-mail)");
        form.contraseña.value = ""; form.contraseña.focus();
        return false;
    }
    if (form.contraseña2.value == "")
    {
        alert("Confirma tu contraseña.");
        form.contraseña.focus();
        return false;
    }
{
    if (form.accond.checked)
    form.submit();
    else
    alert("Debes de aceptar las condiciones antes de enviar");
    return false;

    if(form.contraseña.value == form.contraseña2.value)
    {
        form.file.focus();
    }
    else
    {
        alert("La repetición de la contraseña no coincide, vuelve a introducirla.");
        form.contraseña2.value = ""; form.contraseña2.focus(); return false;
    }
}
    document.body.style.cursor = "wait";
    return true;
}
</script>
Y este si me funcionó en ambos navegadores, espero te funcione a vos.
__________________
Suerte.
_______________________________
"La vida es el principio de la muerte".
  #3 (permalink)  
Antiguo 17/04/2007, 02:26
 
Fecha de Ingreso: abril-2007
Mensajes: 31
Antigüedad: 17 años
Puntos: 0
Re: Checkbox que no actua

Hola el Patrón, pues uso los mismos navegadores que tu, y en ninguno de los dos me funciona la validación checkbox, con tu modificación si me funciona, pero ahora se ha invalidado la comparación entre contraseñas y no puedo verificar su coincidencia, hay algo por debajo del codigo que se trunca sin truncar la funcion entera.

Pero te cuento, tal como postee el script, y antes de añadir un input type="file" en una capa nueva dentro de mi form, iba perfecto todo, hasta el checkbox incluido, luego añadí la DIV y el botón de subir imágenes y también

Gracias por tu atención

Última edición por realxp; 17/04/2007 a las 03:06
  #4 (permalink)  
Antiguo 17/04/2007, 02:57
 
Fecha de Ingreso: abril-2007
Mensajes: 31
Antigüedad: 17 años
Puntos: 0
Re: Checkbox que no actua

Jeje, pues mira, lo he arreglado de la forma mas tonta, mirando el código sin un recalenton de horas en el coco ;) venia de lo siguiente.

Cita:
{
if(form.contraseña.value == form.contraseña2.value)
{ form.file.focus();}
else
{
alert("La repetición de la contraseña no coincide, vuelve a introducirla.");
form.contraseña2.value = ""; form.contraseña2.focus(); return false;
}
}
Ese file hacia referencia al input type="file" que ya lo habia borrado con la capa, y al ir a buscarlo no lo encontraba devolviendo un true, o eso creo

La de horas que le he exao a esto y mira tu lo que era...
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:12.