JavaScript - Ayuda con Funcion js

 
Vista:
Imágen de perfil de Claudio
Val: 18
Ha aumentado su posición en 7 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

Ayuda con Funcion js

Publicado por Claudio (8 intervenciones) el 13/05/2014 20:55:26
Hola que tal.

Tengo una función js para verificar un rut, lo que hace es verificar que este bien escrito y desea un verdadero rut, y asi vez lo pone en el formato 99.999.999-9 aunque el usuario lo ingrese todo junto, sin puntos ni coma, lo cargo desde el template, estoy utilizando smarty.

Cuando un cliente o usuario se loguea en el sitio debe ingresar el rut y password, en ese primer formulario funciona perfectamente la función, pero en el caso que un usuario tenga que llenar un formulario para notificar algo, o registrarse como usuario, se le solicita el rut y en este caso no funciona, si veo el código fuente de la página y doy click en donde esta cargada la función , la encuentra bien, osea esta bien linkeada.

El asunto es que si el rut no es verificado por la función puede quedar ingresado en la base de datos sin el formato y posteriormente cuando el usuario quera entrar a backoffice, no va poder, ya que se compara si el rut si esta bien ingresado y si el usuario está registrado. pero debe estar ingresado al igual que esta en la tabla y en la tabla esta con formato.

Si alguien me puede ayudar por favor, para saber porque ocurre esto? o solamente puedo usar la función una sola vez, y no las veces que necesite en todo el entorno?

De antemano Muchas Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Sergio

Ayuda con Funcion js

Publicado por Sergio (7 intervenciones) el 13/05/2014 22:37:28
Una función se puede usar todas las veces que se desee, pienso que el error puede estar en el evento que llama la función, otra cosa si en la base de datos solo se puede usar un formato especifico esta debería encargarse de dejar o no ingresar el dato no javascript.

Lo de javascript es para dejar o no ingresar al usuario datos, para que este no tenga que preocuparse si lo escribió bien o no. Pero si no se escribe el código de javascript solo debería salir el error, no que se pueda registrar, yo usaría un tigger que dejara o no ingresar cierto formato de rut, pero eso no es cosa de javascript XD.

¿Puedes mostrar la función y el evento que la llama?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Claudio
Val: 18
Ha aumentado su posición en 7 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

Ayuda con Funcion js

Publicado por Claudio (8 intervenciones) el 13/05/2014 23:32:56
Esta es la Funcion
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
function revisarDigito(dvr)
{
        dv = dvr + ""
        if( dv != '0' && dv != '1' && dv != '2' && dv != '3' && dv != '4' && dv != '5' && dv != '6' && dv != '7' && dv != '8' && dv != '9' && dv != 'k'  && dv != 'K')
        {
                alert("Debe ingresar un digito verificador valido");
                window.document.form1.rut.focus();
                window.document.form1.rut.select();
                return false;
        }
        return true;
}
 
function revisarDigito2(crut)
{
        largo = crut.length;
        if(largo<2)
        {
                alert("Debe ingresar el rut completo")
                window.document.form1.rut.focus();
                window.document.form1.rut.select();
                return false;
        }
        if(largo>2)
                rut = crut.substring(0, largo - 1);
        else
                rut = crut.charAt(0);
        dv = crut.charAt(largo-1);
        revisarDigito( dv );
 
        if ( rut == null || dv == null )
                return 0
                var dvr = '0'
                suma = 0
                mul  = 2
 
                for (i= rut.length -1 ; i >= 0; i--){
                        suma = suma + rut.charAt(i) * mul
                        if (mul == 7)
                                mul = 2
                                else
                                        mul++
                }
                res = suma % 11
                if (res==1)
                        dvr = 'k'
                        else if (res==0)
                                dvr = '0'
                                else
                                {
                                        dvi = 11-res
                                        dvr = dvi + ""
                                }
                                if ( dvr != dv.toLowerCase() )
                                {
                                        alert("EL rut es incorrecto")
                                        window.document.form1.rut.focus();
                                        window.document.form1.rut.select();
                                        return false
                                }
 
                                return true
}
 
function Rut(texto)
{
        var tmpstr = "";
        for ( i=0; i < texto.length ; i++ )
                if ( texto.charAt(i) != ' ' && texto.charAt(i) != '.' && texto.charAt(i) != '-' )
                        tmpstr = tmpstr + texto.charAt(i);
                texto = tmpstr;
        largo = texto.length;
 
        if ( largo < 2 )
        {
                alert("Debe ingresar el rut completo")
                window.document.form1.rut.focus();
                window.document.form1.rut.select();
                return false;
        }
 
        for (i=0; i < largo ; i++ )
        {
                if ( texto.charAt(i) !="0" && texto.charAt(i) != "1" && texto.charAt(i) !="2" && texto.charAt(i) != "3" && texto.charAt(i) != "4" && texto.charAt(i) !="5" && texto.charAt(i) != "6" && texto.charAt(i) != "7" && texto.charAt(i) !="8" && texto.charAt(i) != "9" && texto.charAt(i) !="k" && texto.charAt(i) != "K" )
                {
                        alert("El valor ingresado no corresponde a un R.U.T valido");
                        window.document.form1.rut.focus();
                        window.document.form1.rut.select();
                        return false;
                }
        }
 
        var invertido = "";
        for ( i=(largo-1),j=0; i>=0; i--,j++ )
                invertido = invertido + texto.charAt(i);
        var dtexto = "";
        dtexto = dtexto + invertido.charAt(0);
        dtexto = dtexto + '-';
        cnt = 0;
 
        for ( i=1,j=2; i<largo; i++,j++ )
        {
                //alert("i=[" + i + "] j=[" + j +"]" );
                if ( cnt == 3 )
                {
                        dtexto = dtexto + '.';
                        j++;
                        dtexto = dtexto + invertido.charAt(i);
                        cnt = 1;
                }
                else
                {
                        dtexto = dtexto + invertido.charAt(i);
                        cnt++;
                }
        }
 
        invertido = "";
        for ( i=(dtexto.length-1),j=0; i>=0; i--,j++ )
                invertido = invertido + dtexto.charAt(i);
 
        window.document.form1.rut.value = invertido.toUpperCase()
 
        if(revisarDigito2(texto))
                return true;
        return false;
}
Y así la llamo
name="rut" onblur="return Rut(form1.rut.value)"
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar