No estás registrado (Registrarse)

Vanilla 1.1.10 es un producto de Lussumo. Para más información: Documentación, Soporte.

    •  
      CommentAuthorAntonio
    • CommentTimeJun 26th 2009
     # 1
    Estos días estoy terminando de programar algunas cosas que tenía hechas con jquery ytengo muchas preguntas que me vienen a la cabeza:

    ¿Sino se encuentra en Bosón de Higgs adelgazaré?
    ¿Para donde caen los ojos de los muertos?
    ¿Cuantos metros cuadrados son un Acre?
    ¿Porqué, si dios es principio y fin de todo, permitio que Chiquito de la Calzada se hiciera famoso?
    ¿Tan feo era Picio?
    y la que especialmente me preocupa:

    Lo que estoy programando un sistema de formularios compactos (de los que aparece las label dentro del campo).
    El caso es que he hecho algunas cosas sobre el blur y el focus para que vaya cambiando el color si ha escrito algo, que lo convierta a texto si es una password cuando esté vacío, etc. Ahora estoy con la verificación de los datos. La intención es que en el evento onsubmit de formulario se llama a la verificación para que los campos no correctos se pongan en rojo. Para decirle si tiene que evaluarlos he añadido una entrada en cada input indicándolo:
    rel="required"
    Este es fácil. :)
    Ahora reviso algunas cosas que deben estar bien escritas:
    email -> rel="required email"
    telefono -> rel="required number(9)"
    codigo postal -> rel="required number(5)"
    longitud minima y maxima -> rel="required min(3) max(10)"

    Mi problema (aunque en estos he tenido algunos) es como puedo verificar en el lado cliente dos contraseñas iguales sin que la función sepa cómo se llaman:

    rel="required twin(A)"

    y en el otro

    rel="required twin(A)"

    se me ocurrió añadir la A para saber que tenían relación por si hay más passwords pero no veo muy bien cómo implementar.

    también me pasa con el email para su segunda casilla de verificación.

    A ver si alguien me da una idea :D

    Por último he implementado un captcha del lado cliente para no saturar el servidor, pero no tengo ni idea de como crear una imagen en javascript y escribir dentro. Alguna idea?

    Gracias.
    •  
      CommentAuthorquality
    • CommentTimeJun 26th 2009
     # 2
    Posted By: alearisPor último he implementado un captcha del lado cliente para no saturar el servidor, pero no tengo ni idea de como crear una imagen en javascript y escribir dentro. Alguna idea?

    Empiezo por lo último.

    ¿Por qué tiene que ser una imagen?

    Los captcha que más me gustan es cuando el sistema me genera una frase y me manda por ejemplo sumar, multiplicar o dividir. Creo que son suficientemente seguros y muy legibles por el usuario. Particularmente estoy haaartooo :smash: de los captcha ininteligibles que te obliga a intentar una y otra vez dar con la combinación correcta. :pray:

    La otra opción, si te empeñas con la imagen, es generala con php y hacer que javascript te la muestre :tiko:

    Y una última idea, es tener una galería de imagenes captchas y que aleatoriamente muestre unas u otras, o incluso una combinación de varias imagenes juntitas. :typeo:Haciendo Cuentas __ Ayuda Familiar _ _ casas rurales
    •  
      CommentAuthorquality
    • CommentTimeJun 26th 2009
     # 3
    Posted By: alearisMi problema (aunque en estos he tenido algunos) es como puedo verificar en el lado cliente dos contraseñas iguales sin que la función sepa cómo se llaman


    Idea: y si haces que antes de compararlas se codifiquen y las comparas codificadas. Si son iguales, la codificación será igual.

    (No se si he entendido bien el problema :dumb:)Haciendo Cuentas __ Ayuda Familiar _ _ casas rurales
    •  
      CommentAuthorAntonio
    • CommentTimeJun 26th 2009
     # 4
    El problema está en que no sé cómo saber que dos variables son las que hay que cmparar sin pasarlas a la funcion (esto es para poder usar la función sin parámetros con cualquier formulario). En jquery es fácil porque con $ o en mootools con & te da el elemento.

    Lo que hago es lo siguiente:

    En la cabecera del html hago la llamada al js.
    En el js asigno a todos los formularios el evento onsubmit.

    for( var i = 0; ..... ) {
    AddEvent( form[i], verifica(form[i]), false);
    }

    después en el formulario añado la etiqueta rel en cada campo para que me indique si hay que verificar.

    la funcion verifica lo que hace es:

    var formok = true;

    if( elemento.rel.indexOf( 'required', 0 ) > 0 ) {
    if( elemento.value == ' ' ) {
    elemento.style.color = '#0000b0';
    elemento.value = elemento.title+': Campo requerido';
    formok = false;
    }
    }

    y "asín" sucesivamente....

    Esto va metido en un for con los campos del formulario

    -------

    Con respecto al captcha, ya lo tengo en php, lo que quiero es hacerlo únicamente en java para poder incristarlo en html puro, pero no sé si se puede generar una imagen. Para las sumas puede estar bien, pero es fácilmente evitable con un pequeño php que lo lea. Mi desconocimiento de javascript es tan grande que no se si se pueden generar numero aleatorios del 0 a 9.
    •  
      CommentAuthorquality
    • CommentTimeJun 26th 2009
     # 5
    Yo er java tampoco es mi fuerte. :smash:

    Para los aleatorios

    function aleatorio(inferior,superior){
    numPosibilidades = superior - inferior
    aleat = Math.random() * numPosibilidades
    aleat = Math.floor(aleat)
    return parseInt(inferior) + aleat
    }

    Hay que recordar que aleatorio(0,4) devolverá numeros entre 0 y 5. :smash:Haciendo Cuentas __ Ayuda Familiar _ _ casas rurales
    •  
      CommentAuthorJavi
    • CommentTimeJun 27th 2009
     # 6
    Alearis, no entiendo bien lo que quieres decir, osea que no sabes el nombre de que variable? O el contenido?
    •  
      CommentAuthorAntonio
    • CommentTimeJun 27th 2009
     # 7
    :)

    Sí, me refiero a lo primero.

    No sé cómo obtener de:

    <input type="password" rel="required password(A)" name="pass1" />
    <input type="password" rel="required password(A)" name="pass2" />


    Ahora en java, cuando llamo a validar:

    function validar( form ) {
    Aquí, dento de un for para coger los elemnetos internos, es string form[i].rel debería ser igual a "required password(A)".
    ¿Cómo saco cómo comparar los dos inputs que contienen passwords(A) y comparar los valores metidos en value?
    ¿Almaceno una variable global para saber que encontró el primer input y que espera el segundo?
    ¿Sería mejor que el campo de verificación pusiese, en lugar de passwords(A) en ambos, solamente el nombre de la variable input con la que hay que comparar? por ejemplo rel="required pass1". ¿Cómo obtengo el nombre de la variable de ese string?
    }


    Gracias.
    •  
      CommentAuthorJavi
    • CommentTimeJun 27th 2009
     # 8
    Pero lo que no entiendo es porque no usas form.campo.value para saber su contenido como e echo yo toda la vida :confuso:
    •  
      CommentAuthorAntonio
    • CommentTimeJun 27th 2009 editado
     # 9
    Posted By: javin1Pero lo que no entiendo es porque no usas form.campo.value para saber su contenido como e echo yo toda la vida


    Porque esto es lo que hago si quiero valida un formulario concreto, el problema está en hacer la función para que verifique cualquier formulario y no uno en concreto. Así que en el caso de cualquier formulario, ni se los nombres de los campos ni se los requisitos de verificación que ha puesto. De ahí que quiera definir rel="required password(A)", para que con esa instrucción me lo pueda decir, pero no sé mirar dentro de rel para encontrar lo que pide u relacionarlo con un segundo campo. El que sea requerido si es fácil, solo verifico que no sea vacío.
    •  
      CommentAuthorPedro
    • CommentTimeJun 27th 2009
     # 10
    Asi pensando en abstracto.

    Podrías recorrer con un bucle los input, comprobar que tengan el rel required. Si es tipo password, compruebas que tenga un valor, y lo almacenas en una variable temporal (si la variable está vacía) o comparas con la variable temporal (si está llena).

    Valdría algo asi o estoy :cata3:?¿X-Y.es
    •  
      CommentAuthorAntonio
    • CommentTimeJun 27th 2009
     # 11
    Si, es una opcion buena, pero me ocasiona un problema, y es que como no conozco el formulario podría tener por ejemplo 6 campos de passwords (algo bastante poco corriente) no sabría cuales debo comparar y cuales no.

    Creo que lo suyo es extrear de rel en cada input lo que esté entre paréntesis y almacenarlo en algún arrayy cuando llegue a otro que tenga ese mismo verificar el valor si coincide. Pero después de hacerlo no me churula. No sé si es que no extraigo bien los valores de rel al ser varios.
    •  
      CommentAuthorAntonio
    • CommentTimeJun 27th 2009
     # 12
    Se me acaba de ocurrir que podría cambiar el formato de los parentesis por:

    en el password 1: rel="required twin=password2"

    y en el password 2: rel="required"

    y cuando llegue el bucle a password 1 hacerle un split a la parte "twin=password2" con el igual y conocer el nombre de la otra a comparar. Cuando llegue a la otra lo comparo.

    Con esto me surge otro problema, el orden en el que se procesa el bucle, si los encuentra al revés nunca encontrará la variable.

    Alguna idea?
    •  
      CommentAuthorPedro
    • CommentTimeJun 27th 2009
     # 13
    Para diferenciar tus campos de esos otros que pudieran existir, podrías definir los id o los name de los campos de tu formulario en una matriz, tipo id="alearis[email]"... y realizar la comprobación solamente si pertenecen a la matriz alearis[].X-Y.es