Validación

Hola otra vez,
más problemillas...
Tengo un formulario en el que dejo al usuario meter su nombre, apellido, dirección... Y hasta ahora válido que no sea nulo el campo, pero ahora mi jefe quiere que ademas de que no sea nulo compruebe el numero de caracteres de cada campo, es decir nombre, apellido.. No puede tener menos de 3 letras, el código postal no puede tener menos de 5, el mail tiene que tener @ y . Y ademas no tener menos de 5 caracteres... Todo eso, y el caso es que me he liado y no atino a hacerlo.
Esta validación la tengo que hacer con la página en el cliente, no la devuelvo al servidor para validarla.
ademas... Me corre un poquillo de prisa.
Gracias por todo.

3 Respuestas

Respuesta
1
Vamos por partes.
A.- las longitudes de los campos los puedes controlar por el campo de texto (input type="text" MAXLENGTH="3")
o por código:
var a = form.a.value.length;
En a tendrias la longitud del campo, luego podrias decir
if(a>3)...
Si quieres validar el mail
Primero miras si tiene @ (indexOf"@") dentro de ese if haces otro donde compruebas que tenga un punto después de la arroba.
indexOf(".",mail.substring(mail.indexOf("@))
Suponiendo que en mail tienes la dirección introducida en el email.
Se trata de utilizar el método indexOf que te devuelve la posición del carácter o palabra por la que preguntas (-1 si no está) y substring, que te devuelve la subcadena de una palabra a partir de una posición dada y hasta el final o una posición determinada si se lo indicas:
mail.indexOf("@") -> posición de @
Mail. Substring(1,3) -> la subcadena q coge entre la 2ª y la 4ª letra...
¿Lo entiendes? Pues eso, móntate las validaciones como mejor te convenga :)
Iv
¿Así controlo la longitud máxima pero y la mínima?
Creo que no me explico bien.
Quiero que dar al enviar de un formulario, valide los campos, y si p.e. en el campo nombre hay algo menor de 3 caracteres que me saque una ventana de popup diciendo que el nombre es menor de 3 caracteres.
Para la longitud mínima
function checkLen(form){
// compruebo q la cadena tenga entre 3 y 6 letras
var longMail = form.email.value.length();
if(longMail < 3 && longMail > 6){
alert("minimo 3 letras, maximo 6");
}
}
Me voy pa casa, si no t sirve, luego sigo :)
Iv.
Respuesta
1
A ver, para las validaciones de los campos, debes hacerlo en javascript. En la misma función que tienes, para validar que no sean nulos, es decir, en jacvascript, utilizas el metoso "lenght" de cada campo, de esta forma:
"document.nombreformulario.nombrecampo.value.lenght = 3; "(por ejempo). Con esto compruebas que los tamaños de los valores de los campos sean los que tu quieres. Deberia ponerlo en un if para que si no es el correcto, le muestres un mensaje de error y mandes el foco al lugar donde falla. De esta forma:
if (document.nombreformulario.nombrecampo.value.lenght != 3)
{
alert("el tamaño del nombre no es el correcto, debe ser mayor que bla bla bla...");
document.nombreformulario.nombrecampo.focus();
}
Asi con todos.
Para el tema de la "@", debes hacer más o menos lo mismo, pero con un método de javascript que se llama "indexOf". Este devuelve la posición en la cadena del carácter buscado, si no existe devuelve "-1". Así pues, debes ponerlo de esta forma:
if (document.nombreformulario.nombrecampo.value.indexOf("@") != -1)
{
alert("no contiene @, bla bla bla");
}
Respuesta
1
Control de email, es un poco cutre... y creo que hay código que no se utiliza, pero es lo que encontré un día que buscaba:
function emailCheck (emailStr) {
/* Verificar si el email tiene el formato user@dominio. */
var emailPat=/^(.+)@(.+)$/
/* Verificar la existencia de caracteres. ( ) < > @ , ; : \ " . [ ] */
var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
/* Verifica los caracteres que son válidos en una dirección de email */
var validChars="\[^\\s" + specialChars + "\]"
var quotedUser="(\"[^\"]*\")"
/* Verifica si la dirección de email está representada con una dirección IP Válida */
var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
/* Verificar caracteres inválidos */
var atom=validChars + '+'
var word="(" + atom + "|" + quotedUser + ")"
var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
var matchArray=emailStr.match(emailPat)
if (matchArray==null) {
alert("La dirección de Email es incorrecta.")
return false
}
var user=matchArray[1]
var domain=matchArray[2]
if (emailStr.length < 2) {
alert("La dirección de Email es incorrecta.")
return false
}
// La dirección de email ingresada es Válida
return true;
}
longitud:
if (document.miform.campo1.lenght <= 3) {
alert("ERROR");
return false;
}
if (document.miform.campo2.lenght <= 5) {
alert("ERROR");
return false;
}
Espero habert ayudado si necesitas algo más conceso sólo tienes que pedirlo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas