Foros del Web » Programando para Internet » Javascript »

validar formulario

Estas en el tema de validar formulario en el foro de Javascript en Foros del Web. Buenas tengo un pequeño error a la hora de validad el formulario, los campos me los valida bien, me valida la fecha, me mira que ...
  #1 (permalink)  
Antiguo 20/02/2006, 05:50
 
Fecha de Ingreso: abril-2005
Ubicación: Santiago Compostela
Mensajes: 213
Antigüedad: 19 años
Puntos: 0
validar formulario

Buenas tengo un pequeño error a la hora de validad el formulario, los campos me los valida bien, me valida la fecha, me mira que no sea vacio, etc..
El problema me viene a la hora de enviarlo, yo lo tengo con una imagen, pulso el boton y me da el error, la advertencia, pero me pasa a la pagina donde me hace el listado y donde me da el error, de eof.
el codigo es:

Código:
<script language="JavaScript">
function esDigito(sChr){
var sCod = sChr.charCodeAt(0);
return ((sCod > 47) && (sCod < 58));
}

function valSep(oTxt){
var bOk = false;
bOk = bOk || ((oTxt.value.charAt(2) == "-") && (oTxt.value.charAt(5) == "-"));
bOk = bOk || ((oTxt.value.charAt(2) == "/") && (oTxt.value.charAt(5) == "/"));
return bOk;
}

function finMes(oTxt){
var nMes = parseInt(oTxt.value.substr(3, 2), 10);
var nRes = 0;
switch (nMes){
case 1: nRes = 31; break;
case 2: nRes = 29; break;
case 3: nRes = 31; break;
case 4: nRes = 30; break;
case 5: nRes = 31; break;
case 6: nRes = 30; break;
case 7: nRes = 31; break;
case 8: nRes = 31; break;
case 9: nRes = 30; break;
case 10: nRes = 31; break;
case 11: nRes = 30; break;
case 12: nRes = 31; break;
}
return nRes;
}
function valDia(oTxt){
var bOk = false;
var nDia = parseInt(oTxt.value.substr(0, 2), 10);
bOk = bOk || ((nDia >= 1) && (nDia <= finMes(oTxt)));
return bOk;
}

function valMes(oTxt){
var bOk = false;
var nMes = parseInt(oTxt.value.substr(3, 2), 10);
bOk = bOk || ((nMes >= 1) && (nMes <= 12));
return bOk;
}

function valAno(oTxt){
var bOk = true;
var nAno = oTxt.value.substr(6);
bOk = bOk && ((nAno.length == 2) || (nAno.length == 4));
if (bOk){
for (var i = 0; i < nAno.length; i++){
bOk = bOk && esDigito(nAno.charAt(i));
}
}
return bOk;
}

function ValidarFecha(oTxt){
var bOk = true;
if (oTxt.value != ""){
bOk = bOk && (valAno(oTxt));
bOk = bOk && (valMes(oTxt));
bOk = bOk && (valDia(oTxt));
bOk = bOk && (valSep(oTxt));
if (!bOk){
alert("           Fecha non válida. \nO formato debe de ser.\n             dd/mm/aaaa");
oTxt.value = "";
oTxt.focus();
}
}
}
function Validar(form){
   if (form.textdata1.value == "") {
      alert("Debe introducir unha data de inicio");
      form.textdata1.focus();
      return false;
   }
	if (form.textdata2.value == "") {
      alert("Debe introducir unha data final");
      form.textdata2.focus();
      return false;
   }
   form.submit();
}






<form name="FormListventas" method="post" action="ListventasDet.asp">
....
...
<input name="Enviar" type="image" class="boton" value="Enviar" src="imagenes/enviar.gif" onClick="Validar(this.form)">
</form>
</script>

alguno sabe como arreglarlo.
un saludo
  #2 (permalink)  
Antiguo 21/02/2006, 08:10
 
Fecha de Ingreso: febrero-2006
Mensajes: 7
Antigüedad: 18 años, 3 meses
Puntos: 0
De acuerdo Funcion isDate() pero en javascript "esFecha()"

Para validar formularios siempre es aconsejable utilizar expresiones regulares, ya que simplifcan la cantidad de codigo.-
Aca te paso la funcion que hice para validar fechas.-

function esFecha(fechaentexto){
rf = new RegExp("^([0-2][0-9]|3[0|1])\/(0[1-9]|1[1|2])\/(20[0-3][0-9])$")
bEsFecha = rf.test(fechaentexto)
if(bEsFecha){
valores = rf.exec(fechaentexto)
bEsFecha = !(valores[1]==31 && (valores[2]==04 || valores[2]==06 || valores[2]==09 || valores[2]==11))
bEsFecha = bEsFecha && !(valores[2]==2 && (valores[1]>29 || (valores[1]==29 && valores[3]%4 > 0)))
}
return bEsFecha
}


Exitos.
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 14:34.