Hola a todos:
Espero que alguien me pueda ayudar en mi problema. Tengo un formulario muy simple para enviar y antes de enviar estoy intentando validar los campos, hago lo siguiente:
*****************************
<title>Enviando Correos</title>
<script src="/prototype.js" type="text/javascript"></script>
<script type="text/javascript">
function envio(){
new Ajax.Updater('apartado','correo.jsp',{
parameters: $('fPedido').serialize(true)});
}
function validar(fPedido){
var er_email = /^(.+\@.+\..+)$/
var er_telfono = /^[0-9]{9}$/
if (fPedido.sNombre.value.trim()=="") {
alert('Nombre no valido');
fPedido.sNombre.focus();
return (false);
}
if (fPedido.sTelefono.value=="") {
alert("El campo \"Tel�fono\" est� vac�o.");
fPedido.sTelefono.focus();
return (false);
}else{
if(!er_telfono.test(fPedido.sTelefono.value)){
alert('Campo Tel�fono no v�lido.');
fPedido.sTelefono.focus();
return (false) //no submit
}
}
if (fPedido.sEmail.value=="") {
alert("El campo \"E-mail\" est� vacio.");
fPedido.sEmail.focus();
return (false);
}else{
if(!er_email.test(fPedido.sEmail.value)){
alert('Campo E-mail no valido.')
fPedido.sEmail.focus();
return (false);
}
}
if (fPedido.sDireccion.value.trim()=="") {
alert('El campo \"Direccion\" est vacio');
fPedido.sDireccion.focus();
return (false);
}
if (fPedido.sCiudad.value.trim()=="") {
alert('El campo \"Ciudad\" est vacio');
fPedido.sCiudad.focus();
return (false);
}
if (fPedido.pProvincia.value.trim()=="") {
alert('El campo \"Provincia\" est vacio');
fPedido.pProvincia.focus();
return (false);
}
if (fPedido.nCp.value.trim()=="") {
alert('El campo \"Codigo Postal\" est vacio');
fPedido.nCp.focus();
return (false);
}
if (fPedido.datos.checked==false ){
alert('Para enviar tus datos tienes que haceptar las condiciones de proteccion de datos');
return(false);
}
if (fPedido.producto.checked==false ){
alert('Para realizar un pedido debe de seleccionar algun producto');
return(false);
}
}
String.prototype.trim= function() {//Agrega la funci�n trim al objeto String
return this.replace(/(^\s*)|(\s*$)/g,""); //elimina espacios a izquierda y derecha
}
function activarCantidad(Prod,Cantidad){
if (Prod.checked==true )
{
Cantidad.disabled=false ;
}
else
{
Cantidad.disabled=true;
Cantidad.value="";
}
}
</script>
</head>
<body>
<form id="fPedido" name="fPedido" class="formu" onSubmit="return validar(this)">
<label>*Nombre y apellidos <input class="ecBordeCaja" type="text" name="sNombre" size=30/></label><br><br>
<label>*Direccion <input class="ecBordeCaja" type="text" name="sDireccion" size=30/></label><br><br>
<label>*C.P. <input class="ecBordeCaja" type="text" name="nCp" size=5 maxlength=5/></label><br><br>
<label>*Ciudad <input class="ecBordeCaja" type="text" name="sCiudad"/></label><br><br>
<label>*Provincia <input class="ecBordeCaja" type="text" name="pProvincia"/></label><br><br>
<label>*Email <input class="ecBordeCaja" type="text" name="sEmail"/></label><br><br>
<label>*Telefono <input class="ecBordeCaja" type="text" name="sTelefono"/></label><br><br>
<label>Comentario sobre el pedido</label><br><textArea class="ecBordeCaja" name="sComentario" rows="5" cols="40"/></textarea><br><br>
<br>
<div class="ecRelleno"></div>
<div><input name="datos" value="3" type="checkbox"/> Proteccion de datos</div><br/><br/>
<div class="ecRelleno"></div>
<input type="button" name="enviar" value="Enviar" onClick="enviar()">
</form>
<div id="apartado" class="ecAaprtado"></div>
</body>
</html>
***********************************************
La cosa es que el formulario se envia pero sin validarse los campos, es decir, que a la funcion "enviar" que esta puesta en el onClick del boton hace caso, pero al del formulario no. Este mismo "validar" lo hago en otra pagian web y me va perfectamente. Alguien puede echarle un vistazo y decirme si encuentra algun fallo??
Muchas gracias de antemano.