Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/07/2013, 13:53
andoporto
 
Fecha de Ingreso: junio-2013
Mensajes: 20
Antigüedad: 10 años, 10 meses
Puntos: 0
Exclamación validación errónea y problemas con la función click

Hola, tengo un problema

partiendo de este html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Formulario validacion 1</title>
<script type="text/javascript" src="jquery/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="js/validador.js"> </script>
<link rel="stylesheet" type="text/css" href="css/estilo.css"></link>

</head>
<body>
<div class="inicio">
<div class="div_formulario">
<form name="formulario" id="formulario" class="formulario" action="" method="post">
<ul>
<li>Nombre o razón social: <span>(*)</span></li>
<li><input name="nombre" id="nombre" type="text"></li>
<li>E-Mail <span>(*)</span></li>
<li><input name="email" id="email" type="text"></li>
<li>Tipo de evento: <span>(*)</span></li>
<input name="evento" id="evento_empresarial" value="empresarial" type="radio"> <label for="evento_empresarial">Empresarial</label>
<input name="evento" id="evento_particular" value="particular" type="radio"> <label for="evento_particular">Particular</label>
<li>Me interesa consultar sobre:<span>(*)</span> </li>
<li>
<li><input type="checkbox" name="consulta" id="catering" value="catering"/>
Catering </li>
<li><input type="checkbox" name="consulta" id="salones" value="salones"/>
Salones</li>
<li><input type="checkbox" name="consulta" id="musica" value="musica"/>
M&uacute;sica </li>
<li><input type="checkbox" name="consulta" id="fotografia" value="fotografia"/>
Fotograf&iacute;a </li>
<li><input type="checkbox" name="consulta" id="decoracion" value="decoracion"/>
Decoraci&oacute;n </li>
<li><input type="checkbox" name="consulta" id="dj" value="dj"/>
DJ </li>
<li><input type="checkbox" name="consulta" id="show" value="show"/>
Show </li>
<li><input type="checkbox" name="consulta" id="videos" value="videos"/>
Videos </li>
</li>
<li> Zona donde desea el evento:<span>(*)</span></li>
<li>
<select name="ubicacion" id="ubicacion">
<option value="" selected="selected">-</option>
<option value="caba">CABA</option>
<option value="gba">GBA</option>
<option value="fueradegba">Fuera de GBA, Bs As</option>
<option value="interior">Interior</option>
</select>
</li>
<label for="comments">Comments:</label>

<textarea name="comments" id="comments">
</textarea>
</form>
<li class="botones"><input name="check" id="check" type="submit" value="OK" /></li>
<li class="botones"><input type="reset" value="Cancelar" onclick="$('form')[0].reset()"/></li>
</ul>

</div>
</div>

</body>
</html>

con este css


.html, body {
font-family:Verdana, Geneva, sans-serif;
font-size:12px;
}

.inicio {
width:600px;
height:100%;
padding:0px;
margin:0px auto 0px auto;
}

.formulario ul {
float:left;
width:100%;
padding:0px;
margin:0px;
padding-top:20px;
list-style-type:none;
}

.formulario ul li {
float:left;
width:50%;
height:25px;
line-height:25px;
padding:0px;
margin:0px;
list-style-type:none;
padding-top:5px;
}

.formulario ul li.botones {
text-align:center;
}

y la función validador.js

$(document).ready(function(){
$("#formulario").submit(function () {
/* if($("#nombre").val().length < 4 || isNaN($("#nombre").val())) {
alert("El nombre debe tener más de 3 caracteres y sólo letras");
return false;
} */
if($("#nombre").val().length < 4 || !isNaN($("#nombre").val())) {
alert("El nombre debe tener más de 3 caracteres y sólo letras");
return false;
}

if($("#email").val().length < 1) {
alert("La dirección e-mail es obligatoria");
return false;
}
if($("#email").val().indexOf('@', 0) == -1 || $("#email").val().indexOf('.', 0) == -1) {
alert("La dirección parece incorrecta");
return false;
}

if($("#evento_empresarial").is(':checked') || $("#evento_particular").is(':checked')) { } else {
alert("Indique el tipo de evento");
return false;
}

if($("input[name='consulta']").is(':checked')) { } else {
alert("Indique al menos un item");
return false;
}

if($("#ubicacion option:selected").val() == "") {
alert("La zona es obligatoria");
return false;
}


$('#check').click(function() {

if ( $('#comments').val().trim() == '' )
{
alert('El mensaje debe tener texto');
}
});

return false;
});
});


El problema es que me valida mal el campo Nombre, debe permitir el ingreso de letras, no debe permitir el ingreso de números y debe tener más de 3 caracteres,
pero no funciona. me valida bien el valor "q1245" y "1245y", se decir cuando el campo tiene más de 3 caracteres
de extensión me acepta el valor, aunque tenga números, pero esta mal.
Otro error es cuando hago click y el textarea está vacio, a veces tengo que hacer varias veces click para
que salir del alert de 'El mensaje debe tener texto' o tengo que hacer click varias veces para que me valide el textarea vacío.
Alguien sabe como soluciono?
Subí el código a http://jsfiddle.net/andoporto/QvH8M/