Necesito ayuda con JavaScript
Bueno dias.
Les quiero pedir ayuda para validar un formulario con javascript. El problema es que puede que tenga un error, que los radio button no me los valida.
Por ejemplo: Me valida el nombre, pasa al radio button y me marca que no esta marcado, si lo marco me sigue indicando que no tiene valor y que necesita ser llenado.
Tambien quiera agregar que soy nuevo con esto de JavaScript, por si quisieran hacer unas sugerencias grax.
Codigo del formulario:
<html>
<head><title>Cuestionario</title>
<script type="text/javascript" src="cues.js"></script>
</head>
<body>
<h3>Cuestionario</h3>
<form id="formuCompu" name="compu" action="" method="get" enctype="application/x-www-form-urlencoded">
<fieldset>
<legend>Cuestionario</legend>
Nombre: <input name="nombre" type="text" size="30" id="nom"><br><br>
1. ¿Cuantas formas existen para configurar Apache?<br>
<input type="radio" name="Nconfig" id="unoA" value="Uno"> 1<br>
<input type="radio" name="Nconfig" id="unoB" value="Dos"> 2<br>
<input type="radio" name="Nconfig" id="unoC" value="Tres"> 3<br>
<br>
2. ¿Cual es la forma mas sencilla de configurar Apache?<br>
<input type="radio" name="Fconfig" id="dosA" value="descarga"> Descargar una copia que te proporcionan los autores<br>
<input type="radio" name="Fconfig" id="dosB" value="editar"> Editar manualmente las lineas<br>
<br>
3. ¿Como se llama el archivo de configuracion?<br>
<input type="radio" name="Aconfig" id="tresA" value="httpa">httpa.config<br>
<input type="radio" name="Aconfig" id="tresB" value="http">http.conf<br>
<input type="radio" name="Aconfig" id="tresC" value="httpd">httpd.conf<br>
<br>
4. ¿Cuales son los pasos para configurar Apache de la forma manual (linea por linea)?<br>
<input type="radio" name="Fmanual" id="cuatroA" value="buena"> 1:<br><br> Modificar la linea 52
<br> <b>Listen</b> indica el puerto y direccion IP:<br>
1- <b>Listen localhost:80<br></b>
2- <b>Listen 80</b><br>
En la linea 149 <b>DocumentRoot</b> es necesario especificar la ruta de la carpeta local que contendra<br> las paginas y archivos a servir:<br>
<b>DocumentRoot"C:/servidor_web"</b><br>
La linea 177 se modifica a: <b>Directory "C:/servidor_web"</b><br><br>
<input type="radio" name="Fmanual" id="cuatroB" value="mala"> 2:<br><br> Modificar la linea 50
<br> <b>Listen</b> indica el puerto y direccion IP:<br>
1- <b>Listen localhost:80<br></b>
2- <b>Listen 90</b><br>
En la linea 169 <b>DocumentRoot</b> es necesario especificar la ruta de la carpeta local que contendra<br> las paginas y archivos a servir:<br>
<b>DocumentRoot"D:/servidor_web"</b><br>
La linea 167 se modifica a: <b>Directory "D:/servidor_web"</b><br>
<br>
5. ¿Cual es el programa recomendado para abrir el archivo de configuracion?<br>
<input type="radio" name="Pconfig" id="cincoA" value="block">block de notas<br>
<input type="radio" name="Pconfig" id="cincoB" value="word">word<br>
<input type="radio" name="Pconfig" id="cincoC" value="exel">exel<br>
<br>
<center>
<input type="button" name="enviar" value="Enviar" id="enviar">
<input type="reset" name="reset" value="Limpiar" id="limpiar">
</center>
</fieldset>
</form>
</body>
</html>
codifo javascript:
function validacion()
{
var verificar = true;
var expRegNombre = /^[a-zA-ZÑñÁáÉéÍíÓóÚúÜü\s]+$/;
//alert("Validando");
var formulario = document.getElementById("formuCompu");
var nombre = document.getElementById("nom");
var uno = document.getElementsByName("Nconfig");
var res1a = document.getElementById("unoA");
var res1b = document.getElementById("unoB");
var res1c = document.getElementById("unoC");
var res2a = document.getElementById("dosA");
var res2b = document.getElementById("dosB");
var res3a = document.getElementById("tresA");
var res3b = document.getElementById("tresB");
var res3c = document.getElementById("tresC");
var res4a = document.getElementById("cuatroA");
var res4b = document.getElementById("cuatroB");
var res5a = document.getElementById("cincoA");
var res5b = document.getElementById("cincoB");
var res5c = document.getElementById("cincoC");
if(!nombre.value)
{
alert("El nombre es requerido");
nombre.focus();
verificar = false;
return validacion;
}
if(!res1a.checked && !res1b.checked && !res1c.checked);
{
alert("La pregunta 1 no esta contestada");
res1a.focus();
verificar = false;
return validacion;
}
if(!res2a.checked && !res2b.checked);
{
alert("La pregunta 2 no esta contestada");
res2a.focus();
verificar = false;
return validacion;
}
if(!res3a.checked && !res3b.checked && !res3c.checked);
{
alert("La pregunta 3 no esta contestada");
res3a.focus();
verificar = false;
return validacion;
}
if(!res4a.checked && !res4b.checked);
{
alert("La pregunta 4 no esta contestada");
res4a.focus();
verificar = false;
return validacion;
}
if(!res5a.checked && !res5b.checked && !res5c.checked);
{
alert("La pregunta 5 no esta contestada");
res5a.focus();
verificar = false;
return validacion;
}
if(verificar==true)
{
document.compu.submit();
alert("Se ha enviado");
}
}
function limpiarForm(){
alert("Limpiando");
document.getElementById("formuCompu").reset();
}
window.onload = function()
{
var botonEnviar, botonLimpiar;
botonLimpiar = document.getElementById("limpiar");
botonLimpiar.onclick = limpiarForm;
botonEnviar = document.compu.enviar;
botonEnviar.onclick = validacion;
}
Samie
Tienes que usar la consola de Chrome para ver el error. Ponle un console.log(verificar); dentro de la funtion que te falle por ejemplo.
Mírate AngularJS que el tema de formularios lo borda!
conectart
Hola buenas,
has probado a añadir el framework JQuery? No es mas que una libreria de Javascript con un monton de funciones muy sencillas de utilizar
Un saludo
David, Soluciones web