Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Consulta javascript

Estas en el tema de Consulta javascript en el foro de Javascript en Foros del Web. Buenas gente, Tengo un formulario de registro y ahora tuve que ponerle la validacion para CUIT/CUIL de Argentina. Esa validacion va bien, el tema es ...
  #1 (permalink)  
Antiguo 27/03/2013, 13:18
Avatar de Nico0601  
Fecha de Ingreso: diciembre-2012
Ubicación: Buenos Aires, Zona Sur
Mensajes: 134
Antigüedad: 11 años, 11 meses
Puntos: 0
Consulta javascript

Buenas gente,
Tengo un formulario de registro y ahora tuve que ponerle la validacion para CUIT/CUIL de Argentina. Esa validacion va bien, el tema es que si ingresa mal la CUIT/CUIL al presionar el boton de registrarse me tira el alert de "CUIT INVALIDA" pero me lo registra igual. Como puedo arreglar eso?
Este es el codigo
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html>
    <
head>
        <
title>Formulario registración</title>
        <
meta content="text/html" charset="utf8_general_ci" http-equiv="Content-Type" />
        <
link href="estiloaltaemp.css" rel="stylesheet" type="text/css" />
        <
link href="estiloform.css" rel="stylesheet" type="text/css" />
        <
style type="text/css">
            
label.error{
                
colorred;
                
font-weightbold;
                
position:absolute;
            }
        </
style>
        <
script type="text/javascript">
        function 
ValidarCuit(cuit
        {
        var 
vec = new Array(10);
        var 
cuit formulario.usu_cuit.value;
        
esCuit=false;
        
cuit_rearmado="";
        
errors ''
        
for (i=0cuit.lengthi++)
        {   
            
caracter=cuit.charAti);
            if ( 
caracter.charCodeAt(0) >= 48 && caracter.charCodeAt(0) <= 57 )
            {
                
cuit_rearmado +=caracter;
            }
        }
        
cuit=cuit_rearmado;
        if ( 
cuit.length != 11) {  // si no estan todos los digitos
            
esCuit=false;
            
errors 'Cuit < 11 ';
            
alert"CUIT Menor a 11 Caracteres" );
        } else {
            
x=i=dv=0;
            
// Multiplico los dígitos.
            
vec[0] = cuit.charAt(  0) * 5;
            
vec[1] = cuit.charAt(  1) * 4;
            
vec[2] = cuit.charAt(  2) * 3;
            
vec[3] = cuit.charAt(  3) * 2;
            
vec[4] = cuit.charAt(  4) * 7;
            
vec[5] = cuit.charAt(  5) * 6;
            
vec[6] = cuit.charAt(  6) * 5;
            
vec[7] = cuit.charAt(  7) * 4;
            
vec[8] = cuit.charAt(  8) * 3;
            
vec[9] = cuit.charAt(  9) * 2;
                        
            
// Suma cada uno de los resultado.
            
for( 0;i<=9i++) 
            {
                
+= vec[i];
            }
            
dv = (11 - (11)) % 11;
            if ( 
dv == cuit.charAt10) )
            {
                
esCuit=true;
            }
        }
        if ( !
esCuit 
        {
            
alert"CUIT Invalido" );
            
document.formulario.usu_cuit.focus();
            
errors 'Cuit Invalido ';
        }
        
document.MM_returnValue1 = (errors == '');
        }
    
</script>    
    </head>
       <body>
        <h1>Formulario registración</h1>
        <!-- Inicio del desarrollo -->
        <form action="alta-empresa.php" method="post" name="formulario" id="formulario" novalidate>
            <div>
                <h2>Datos del usuario</h2>
            </div>
            <div class="label">
                <label for="usu_cuit">Usuario/CUIT Empresa *</label>
                <input type="text" id="usu_cuit" name="usu_cuit" class=":required :integer :min_length;11 :max_length;11 :only_on_blur campos" maxlength="11" minlength="11" required placeholder="30526925501" />
            </div>
            <div class="label"> 
                <label for="usu_clave">Contraseña *</label>
                <input type="password" id="usu_clave" name="usu_clave" class=":required :password :max_length;20 :min_length;6 :only_on_blur campos" maxlength="20" required minlength="6" />
            </div>
            <div class="label">
                <label for="usu_clave2">Repetir Contraseña *</label>
                <input type="password" id="usu_clave2" name="usu_clave2" class=":same_as;usu_clave :required :only_on_blur campos" required  />
            </div>
            <div class="label">
                <label for="emp_nombre">Razón Social *</label>
                <input type="text" id="emp_nombre" name="emp_nombre" class=":required :only_on_blur :max_length;50 campos" maxlength="50" required  />
            </div>
            <div class="label">
                <h2>Datos de contacto</h2>
            </div>
            </div>
            <div class="label">
                <label for="cont_nombre">Nombre Estudio</label>
                <input type="text" id="cont_nombre" name="cont_nombre" class="campos" maxlength="50" />
            </div>
            <div class="label">
                <label for="cont_resp">Nombre y apellido del responsable *</label>
                <input type="text" id="cont_resp" name="cont_resp" class=":required :only_on_blur :max_length;50 campos" maxlength="50" required />
            </div>
            <div class="label">
                <label for="cont_tel">Teléfono - Característica *<br/>
                Número *</label>
                <input type="tel" size="5" id="cont_caract" class=":required :max_length;5 campos" name="cont_caract"  maxlength="5" placeholder="11" />
                <br />
                <input type="tel" id="cont_tel" class=":required :integer :max_length;10 campos" name="cont_tel" maxlength="10" required placeholder="12345678" />
            </div>
            <div class="label">
                <label for="cont_email">E-mail *</label>
                <input type="email" id="cont_email" class=":required :email :only_on_blur :max_length;50 campos" maxlength="50" name="cont_email" required placeholder="[email protected]" />
            </div>
            <div class="label">
                <input type="submit" value="Registrarse" onclick="ValidarCuit()" /><input type="reset" value="Borrar datos" /><br />
                * Datos obligatorios
            </div>
        </form>
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
    <script type="text/javascript" src="js/validar/jquery.validate.min.js"></script>
    <script type="text/javascript" src="js/validar/messages_es.js"></script>
    <script type="text/javascript" src="js/validar/validacion-de-formulario.js"></script>
    </body>
</html> 
__________________
Nico...
  #2 (permalink)  
Antiguo 27/03/2013, 13:29
Avatar de ipraetoriux  
Fecha de Ingreso: abril-2010
Ubicación: ipraetoriux.com
Mensajes: 1.125
Antigüedad: 14 años, 7 meses
Puntos: 155
Respuesta: Consulta javascript

...pues haber, aca tendrias que agregar el return false para frenar el envió del formulario en caso de error en el CUIL/CUIT y un return true en caso de que todo este bien

Código Javascript:
Ver original
  1. if ( !esCuit )  
  2. {
  3.     alert( "CUIT Invalido" );
  4.     document.formulario.usu_cuit.focus();
  5.     errors = 'Cuit Invalido ';
  6.     return false;
  7. }else{
  8.     return true;
  9. }

..y luego en el formulario en boton debes agregar el return en el evento onclick

Código Javascript:
Ver original
  1. <input type="submit" value="Registrarse" onclick="return ValidarCuit()" />
  #3 (permalink)  
Antiguo 27/03/2013, 13:35
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: Consulta javascript

veo otras funciones de validación asi que no se si está todo bien, te pongo un ejemplo general, muy básico, pero se aplica igual a lo que estás tratando

en tu javascript
Código:
function validar(){

if(document.formulario.nombre == "")
alert('falta nombre');
return false;
}

if(document.formulario.edad < 18){
alert('es menor de edad');
return false;
}

}
Es decir si no se cimple una condición devolvé false,
luego en tu form llamás la validación con return en el evento onsubmit

Código:
 <form action="alta-empresa.php" method="post" name="formulario" id="formulario" onsubmit="return validar()">
y quitas ese onclick del boton submit que tenes ahora
entonces, si en la ejecución no se devuelve ningún false, la acción natural del evento continua, es decir, se hace el submit y se envía el form.

SAludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Última edición por emprear; 03/04/2013 a las 07:20
  #4 (permalink)  
Antiguo 03/04/2013, 07:14
Avatar de Nico0601  
Fecha de Ingreso: diciembre-2012
Ubicación: Buenos Aires, Zona Sur
Mensajes: 134
Antigüedad: 11 años, 11 meses
Puntos: 0
Respuesta: Consulta javascript

Buenas gente, gracias por las colaboraciones. Lo habia solucionado poniendo en el submit onmousedown="ValidarCuit()"
Pero lo cambie por la solucion que me paso Ipraetoriux.
Asi que muchas gracias a los dos.
Saludos
__________________
Nico...
  #5 (permalink)  
Antiguo 03/04/2013, 07:52
Avatar de Nico0601  
Fecha de Ingreso: diciembre-2012
Ubicación: Buenos Aires, Zona Sur
Mensajes: 134
Antigüedad: 11 años, 11 meses
Puntos: 0
Respuesta: Consulta javascript

Otra pregunta que no puedo solucionar hace rato.....
El tema de la contraseña, me deja ingresar si la contraseña es solo numeros.
Si yo me registro con una contraseña alfanumerica me la guarda en la BD pero no puedo entrar.
Porque esta pasando esto?
Asi me quedo el form:
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html>
    <
head>
        <
title>Formulario registración</title>
        <
meta content="text/html charset=utf8_general_ci" http-equiv="Content-Type" />
        <
link href="estiloaltaemp.css" rel="stylesheet" type="text/css" />
        <
link href="estiloform.css" rel="stylesheet" type="text/css" />
        <
style type="text/css">
            
label.error{
                
colorred;
                
font-weightbold;
                
position:absolute;
            }
        </
style>
        <
script type="text/javascript">
        function 
ValidarCuit(cuit
        {
        var 
vec = new Array(10);
        var 
cuit formulario.usu_cuit.value;
        
esCuit=false;
        
cuit_rearmado="";
        
errors ''
        
for (i=0cuit.lengthi++)
        {   
            
caracter=cuit.charAti);
            if ( 
caracter.charCodeAt(0) >= 48 && caracter.charCodeAt(0) <= 57 )
            {
                
cuit_rearmado +=caracter;
            }
        }
        
cuit=cuit_rearmado;
        if ( 
cuit.length != 11) {  // si no estan todos los digitos
            
esCuit=false;
            
errors 'Cuit < 11 ';
            
alert"CUIT Menor a 11 Caracteres" );
        } else {
            
x=i=dv=0;
            
// Multiplico los dígitos.
            
vec[0] = cuit.charAt(  0) * 5;
            
vec[1] = cuit.charAt(  1) * 4;
            
vec[2] = cuit.charAt(  2) * 3;
            
vec[3] = cuit.charAt(  3) * 2;
            
vec[4] = cuit.charAt(  4) * 7;
            
vec[5] = cuit.charAt(  5) * 6;
            
vec[6] = cuit.charAt(  6) * 5;
            
vec[7] = cuit.charAt(  7) * 4;
            
vec[8] = cuit.charAt(  8) * 3;
            
vec[9] = cuit.charAt(  9) * 2;
                        
            
// Suma cada uno de los resultado.
            
for( 0;i<=9i++) 
            {
                
+= vec[i];
            }
            
dv = (11 - (11)) % 11;
            if ( 
dv == cuit.charAt10) )
            {
                
esCuit=true;
            }
        }
        if ( !
esCuit 
        {
            
alert"CUIT Invalido" );
            
document.formulario.usu_cuit.focus();
            
errors 'Cuit Invalido ';
            return 
false;
        }else{
            return 
true;
        }
        
document.MM_returnValue1 = (errors == '');
        }
    
</script>    
    </head>
       <body>
        <h1>Formulario registración</h1>
        <!-- Inicio del desarrollo -->
        <form action="alta-empresa.php" method="post" name="formulario" id="formulario" novalidate>
            <div>
                <h2>Datos del usuario</h2>
            </div>
            <div class="label">
                <label for="usu_cuit">Usuario/CUIT Empresa *</label>
                <input type="text" id="usu_cuit" name="usu_cuit" class="campos" maxlength="11" minlength="11" required placeholder="30526925501" />
            </div>
            <div class="label"> 
                <label for="usu_clave">Contraseña *</label>
                <input type="password" id="usu_clave" name="usu_clave" class="campos" maxlength="20" required minlength="6" />
            </div>
            <div class="label">
                <label for="usu_clave2">Repetir Contraseña *</label>
                <input type="password" id="usu_clave2" name="usu_clave2" class="campos" required  />
            </div>
            <div class="label">
                <label for="emp_nombre">Razón Social *</label>
                <input type="text" id="emp_nombre" name="emp_nombre" class="campos" maxlength="50" required  />
            </div>
            <div class="label">
                <h2>Datos de contacto</h2>
            </div>
            </div>
            <div class="label">
                <label for="cont_nombre">Nombre Estudio</label>
                <input type="text" id="cont_nombre" name="cont_nombre" class="campos" maxlength="50" />
            </div>
            <div class="label">
                <label for="cont_resp">Nombre y apellido del responsable *</label>
                <input type="text" id="cont_resp" name="cont_resp" class="campos" maxlength="50" required />
            </div>
            <div class="label">
                <label for="cont_tel">Teléfono - Característica *<br/>
                Número *</label>
                <input type="tel" size="5" id="cont_caract" class="campos" name="cont_caract"  maxlength="5" placeholder="11" />
                <br />
                <input type="tel" id="cont_tel" class="campos" name="cont_tel" maxlength="10" required placeholder="12345678" />
            </div>
            <div class="label">
                <label for="cont_email">E-mail *</label>
                <input type="email" id="cont_email" class="campos" maxlength="50" name="cont_email" required placeholder="[email protected]" />
            </div>
            <div class="label">
                <input type="submit" value="Registrarse" onclick="return ValidarCuit()" /><input type="reset" value="Borrar datos" /><br />
                * Datos obligatorios
            </div>
        </form>
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
    <script type="text/javascript" src="js/validar/jquery.validate.min.js"></script>
    <script type="text/javascript" src="js/validar/messages_es.js"></script>
    <script type="text/javascript" src="js/validar/validacion-de-formulario.js"></script>
    </body>
</html> 
Y las validaciones de los campos estan con javascript asi:
Código:
$(document).ready(inicializar);

function inicializar(){
	
	var formulario = $("#formulario");

	formulario.validate({
		rules: {
			usu_cuit: {
				minlength: 11,
                maxlength: 11
			},
			usu_clave: {
				rangelength:[6,20]
			},
			usu_clave2: {
				rangelength:[6,20],
                equalTo: "#usu_clave"
			},
			cont_resp: {
				rangelength:[6,50]
			},
			cont_caract: {
				maxlength: 5,
                digits:5
			},
            cont_tel:{
                maxlength: 10,
                digits:10
            },
			cont_email: {
				email: true
			}
		},
		messages: {
			usu_cuit: "Por favor, ingresa una cuit valida.",
			usu_clave: {
                required: "Por favor, ingrese una clave.",
                rangelength: "Por favor, ingrese una clave entre 6 y 20 digitos."
            },
			usu_clave2: {
				required: "Por favor, ingrese una clave.",
				rangelength: "Por favor, ingrese una clave entre 6 y 20 digitos.",
                equalTo: "Las claves no coinciden."
			},
            cont_resp: {
                required: "Por favor, ingrese nombre y apellido.",
                rangelength: "Escriba al menos 6 caracteres."
            },
            cont_caract:{
                required:"Por favor, ingrese una caracteristica.",
                digits:"Por favor, ingrese solo numeros."
            },
            cont_tel:{
                required:"Por favor, ingrese un telefono valido.",
                digits:"Por favor, ingrese solo numeros."
            },
			email: "Por favor, introduce una dirección de email válida.",
		}
	});
}
__________________
Nico...

Etiquetas: campos, formulario, html, input, jquery, js, php
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 18:42.