Comunidad de diseño web y desarrollo en internet online

ayuda con validacion campos indefinidos

Citar            
MensajeEscrito el 07 Mar 2012 03:46 pm
Hola quisiera una ayudita, tengo dos formularios que ingresan datos como nombres, apellidos, numero de identidad y direccion, tengo hecha la validacion de la siguiente forma

Nombres--------------------> valida si es solo texto y que tenga como minimo 3 caracteres * campo obligatorio
Apellidos--------------------> valida si es solo texto y que tenga como minimo 3 caracteres * campo obligatorio
Numero de identidad---> valida si es solo numerico y que tenga como minimo 10 caracteres * campo obligatorio
Direccion domicilio------> valida que sea texto, numero, y ciertos caracteres especiales incluido el espacio y que tenga como minimo 10 caracteres * campo obligatorio

un boton llama al javascript para que valide todos estos campos, ahora el problema con el que me tope
necesito validar lo siguiente

si los campos estan vacios-------------> se envien los datos con los campos vacios osea que los acepte
y si ingresa un dato en alguno de los campos-------> los demas se vuelvan obligatorios


les dejo el javascript y el html que tengo para que lo puedan copiar si esq les sirve, lo unico que necesito es ayuda con la validacion de los campos vacios

Código ActionScript :

function validar(formulario) 
{
   var masUsuariosNombre1 = document.getElementsByName("masUsuariosNombre1[]");
   var masUsuariosNombre2 = document.getElementsByName("masUsuariosNombre2[]");
   var masUsuariosApellido1 = document.getElementsByName("masUsuariosApellido1[]");
   var masUsuariosApellido2 = document.getElementsByName("masUsuariosApellido2[]");
   var masUsuariosCedula = document.getElementsByName("masUsuariosCedula[]");
   var masUsuariosDireccion = document.getElementsByName("masUsuariosDireccion[]");
   
   for(var new_user=0; new_user<100; new_user++)
   {
/////////////////////Validar Nombre1
     if (masUsuariosNombre1[new_user].value.length < 3) 
     {
      alert("Escriba por lo menos 3 caracteres en el campo\n\r \"Primer Nombre\".");
      masUsuariosNombre1[new_user].focus();
      return (false);
     }
     var checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"+"áéíóúüñÁÉÍÓÚÜÑ";
     var checkStr = masUsuariosNombre1[new_user].value;
     var allValid = true;
     for (i = 0; i < checkStr.length; i++) {
      ch = checkStr.charAt(i);
      for (j = 0; j < checkOK.length; j++){
        if (ch == checkOK.charAt(j))
         break;
      }
      if (j == checkOK.length) {
        allValid = false;
        break;
      }
     }
     if (!allValid) {
      alert("Escriba solo letras no se aceptan numeros ni caracteres especiales como +-*/()# en el campo\n\r \"Primer Nombre\".");
      masUsuariosNombre1[new_user].focus();
      return (false);
     }

/////////////////////Validar Nombre2
     if (masUsuariosNombre2[new_user].value.length < 3) 
     {
      alert("Escriba por lo menos 3 caracteres en el campo\n\r \"Segundo Nombre\".");
      masUsuariosNombre2[new_user].focus();
      return (false);
     }
     var checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"+"áéíóúüñÁÉÍÓÚÜÑ";
     var checkStr = masUsuariosNombre2[new_user].value;
     var allValid = true;
     for (i = 0; i < checkStr.length; i++) {
      ch = checkStr.charAt(i);
      for (j = 0; j < checkOK.length; j++){
        if (ch == checkOK.charAt(j))
         break;
      }
      if (j == checkOK.length) {
        allValid = false;
        break;
      }
     }
     if (!allValid) {
      alert("Escriba solo letras no se aceptan numeros ni caracteres especiales como +-*/()# en el campo\n\r \"Segundo Nombre\".");
      masUsuariosNombre2[new_user].focus();
      return (false);
     }
     
/////////////////////Validar Apellidos1
     if (masUsuariosApellido1[new_user].value.length < 3) 
     {
      alert("Escriba por lo menos 3 caracteres en el campo\n\r \"Primer Apellido\".");
      masUsuariosApellido1[new_user].focus();
      return (false);
     }
     var checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"+"áéíóúüñÁÉÍÓÚÜÑ";
     var checkStr = masUsuariosApellido1[new_user].value;
     var allValid = true;
     for (i = 0; i < checkStr.length; i++) {
      ch = checkStr.charAt(i);
      for (j = 0; j < checkOK.length; j++){
        if (ch == checkOK.charAt(j))
         break;
      }
      if (j == checkOK.length) {
        allValid = false;
        break;
      }
     }
     if (!allValid) {
      alert("Escriba solo letras no se aceptan numeros ni caracteres especiales como +-*/()# en el campo\n\r \"Primer Nombre\".");
      masUsuariosApellido1[new_user].focus();
      return (false);
     }
/////////////////////Validar Apellidos2
     if (masUsuariosApellido2[new_user].value.length < 3) 
     {
      alert("Escriba por lo menos 3 caracteres en el campo\n\r \"Segundo Apellido\".");
      masUsuariosApellido2[new_user].focus();
      return (false);
     }
     var checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"+"áéíóúüñÁÉÍÓÚÜÑ";
     var checkStr = masUsuariosApellido2[new_user].value;
     var allValid = true;
     for (i = 0; i < checkStr.length; i++) {
      ch = checkStr.charAt(i);
      for (j = 0; j < checkOK.length; j++){
        if (ch == checkOK.charAt(j))
         break;
      }
      if (j == checkOK.length) {
        allValid = false;
        break;
      }
     }
     if (!allValid) {
      alert("Escriba solo letras no se aceptan numeros ni caracteres especiales como +-*/()# en el campo\n\r \"Primer Nombre\".");
      masUsuariosApellido2[new_user].focus();
      return (false);
     }
   
/////////////////////Validar Num. Ident.   -   INICIO
     if (masUsuariosCedula[new_user].value.length < 10) 
     {
      alert("Escriba por los menos 10 numeros en el campo\n\r \"Numero de Cedula\".");
      masUsuariosCedula[new_user].focus();
      return (false);
     }
     
     var checkOK = "0123456789";
     var checkStr = masUsuariosCedula[new_user].value;
     var allValid = true;
     for (i = 0; i < checkStr.length; i++) 
     {
      ch = checkStr.charAt(i);
      for (j = 0; j < checkOK.length; j++)
        if (ch == checkOK.charAt(j))
         break;
      if (j == checkOK.length) {
        allValid = false;
        break;
      }
     }
     if (!allValid) {
      alert("Escriba solo numeros en el campo\n\r \"Numero de Cedula\".");
      masUsuariosCedula[new_user].focus();
      return (false);
     } 
/////////////////////Validar Num. Ident.   -   FIN

/////////////////////Validar Direccion   -   INICIO

     if (masUsuariosDireccion[new_user].value.length < 10) 
     {
      alert("Escriba por lo menos 10 caracteres, numeros o caracteres especiales como #()-/ en el campo\n\r \"Direccion domicilio\".");
      masUsuariosDireccion[new_user].focus();
      return (false);
     }  
     
     var checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"+"áéíóúüñÁÉÍÓÚÜÑ"+"0123456789"+" -/()#";
     var checkStr = masUsuariosDireccion[new_user].value;
     var allValid = true;
     for (i = 0; i < checkStr.length; i++) {
      ch = checkStr.charAt(i);
      for (j = 0; j < checkOK.length; j++){
        if (ch == checkOK.charAt(j))
         break;
      }
      if (j == checkOK.length) {
        allValid = false;
        break;
      }
     }
     if (!allValid) {
      alert("Escriba solo letras y numeros y solo se aceptan caracteres especiales como -/()# en el campo\n\r \"Dirección domicilio\".");
      masUsuariosDireccion[new_user].focus();
      return (false);
     } 


/////////////////////Validar Direccion   -   FIN
   }
     return (true);
}


necesitaran estos estilos para que puedan ver bien distribuido los bloques

Código :

<style type="text/css">
.tit-per {width:100%; float:left; height:17px; padding-top:5px; padding-left:5px; margin-top:8px; border:1px #000 solid;}
.ind-campos-peq{width:25%; float:left; height:17px; margin-top:8px;}
.campo-txt-peq{width:25%; float:left; height:25px; margin-top:0px;}
.ind-campos-gra{width:75%; float:left; height:17px; margin-top:8px;}
.campo-txt-gra{width:75%; float:left; height:25px; margin-top:0px;}
</style>



a continuacion el codigo html

Código HTML :

  <form id="formulario" name="formulario" method="post" action="" onsubmit="return validar(this)">
  <table width="100%" border="0" cellspacing="0" cellpadding="0" style="float:left;">
    <tbody>
      <tr>
        <td>
          <div class="tit-per">Datos de  persona relacionada.</div>
          <div class="ind-campos-peq">Primer Nombre</div>
          <div class="ind-campos-peq">Segundo Nombre</div>
          <div class="ind-campos-peq">Primer Apellido</div>
          <div class="ind-campos-peq">Segundo Apellido</div>
          <div class="campo-txt-peq">
            <input name="masUsuariosNombre1[]" id="masUsuariosNombre1[]" type="text" maxlength="15" style="width:90%">
          </div>
          <div class="campo-txt-peq">
            <input name="masUsuariosNombre2[]" id="masUsuariosNombre2[]" type="text" maxlength="15" style="width:90%" value="">
            </div>
          <div class="campo-txt-peq">
            <input name="masUsuariosApellido1[]" id="masUsuariosApellido1[]" type="text" maxlength="30" style="width:90%" value="">
            </div>
          <div class="campo-txt-peq">
            <input name="masUsuariosApellido2[]" id="masUsuariosApellido2[]" type="text" maxlength="30" style="width:90%" value="">
            </div>
          <div class="ind-campos-peq">Cédula</div>
          <div class="ind-campos-gra">Dirección domicilio</div>
          <div class="campo-txt-peq"><input name="masUsuariosCedula[]" id="masUsuariosCedula[]" type="text" maxlength="25" style="width:90%" value=""></div>
          <div class="campo-txt-gra"><input name="masUsuariosDireccion[]" id="masUsuariosDireccion[]" type="text" maxlength="70" style="width:95%" value=""></div>
        </td>
      </tr>
    </tbody>
  </table>
  <table width="100%" border="0" cellspacing="0" cellpadding="0" style="float:left;">
    <tbody>
      <tr>
        <td>
          <div class="tit-per">Datos de  persona relacionada.</div>
          <div class="ind-campos-peq">Primer Nombre</div>
          <div class="ind-campos-peq">Segundo Nombre</div>
          <div class="ind-campos-peq">Primer Apellido</div>
          <div class="ind-campos-peq">Segundo Apellido</div>
          <div class="campo-txt-peq">
            <input name="masUsuariosNombre1[]" id="masUsuariosNombre1[]" type="text" maxlength="15" style="width:90%">
          </div>
          <div class="campo-txt-peq">
            <input name="masUsuariosNombre2[]" id="masUsuariosNombre2[]" type="text" maxlength="15" style="width:90%" value="">
          </div>
          <div class="campo-txt-peq">
            <input name="masUsuariosApellido1[]" id="masUsuariosApellido1[]" type="text" maxlength="30" style="width:90%" value="">
          </div>
          <div class="campo-txt-peq">
            <input name="masUsuariosApellido2[]" id="masUsuariosApellido2[]" type="text" maxlength="30" style="width:90%" value="">
          </div>
          <div class="ind-campos-peq">Cédula</div>
          <div class="ind-campos-gra">Dirección</div>
          <div class="campo-txt-peq"><input name="masUsuariosCedula[]" id="masUsuariosCedula[]" type="text" maxlength="25" style="width:90%" value=""></div>
          <div class="campo-txt-gra"><input name="masUsuariosDireccion[]" id="masUsuariosDireccion[]" type="text" maxlength="70" style="width:95%" value=""></div>
        </td>
      </tr>
    </tbody>
  </table>
  <table width="100%" border="0" cellspacing="0" cellpadding="0" style="float:left;">
    <tbody>
      <tr>
        <td style="text-align:center; padding-top:20px;">
          <input name="Submit" type="submit" value="Ingresar usuario" style="height:35px; width:150px;" /> &nbsp;&nbsp;&nbsp;&nbsp; 
          <input name="Reset" type="reset" value="Reiniciar" style="height:35px; width:150px;">
        </td>
      </tr>
    </tbody>
  </table>   
  </form>


Agradezco de antemano la ayuda que me presten

Salu2 :) Chau! :D

Por doctorcito

1 de clabLevel



 

firefox
Citar            
MensajeEscrito el 08 Mar 2012 01:44 pm
A ver no se si te he entendido bien.
¿Quieres que un campo no sea obligatorio pero que si empiezan a escribir lo sea?
No se que necesitas, pero creo que los que estas buscando es una comprobación de formulario y te cuento que yo lo que haría es añadir una clase de control:
comp=false
$('input').focus(function(){$/*(this)o('input')*/.addClass('obligatorio');});
comp=($('.obligatorio').lenght>0)?true:false;
if(comp){
for(var i=0;i<$('.obligatorio').lenght;i++){
var tam=$('.obligatorio').eq(i).val()
if(tam>0){$(this).removeClass('obligatorio')};
}
if($('.obligatorio').lenght>0){error bla bla bla...

No se si me he explicado, pero lo que haría es añadir una clase "obligatorio", compruebo cuantos obligatorios hay y miraría si tienen valor, si lo tienen elimino la clase y una vez finalizado volvería a contar las clases "obligatorio", ¿las hay? no se envía el form porque alguno está vacío, ¿no las hay? form.submit() o lo que quieras
}

Por redkram

17 de clabLevel



Genero:Masculino  

ASP,SQL,CSS,JQUERY y más

chrome
Citar            
MensajeEscrito el 30 Abr 2012 03:30 pm
muchas gracias lo pude solucionar

Por doctorcito

1 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.