Autor Tema: Validar campo de tipo 0.0 con jQuery (Ayuda)  (Leído 8415 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado pippin

  • Sv Member
  • ***
  • Mensajes: 301
Validar campo de tipo 0.0 con jQuery (Ayuda)
« : marzo 23, 2012, 08:48:55 pm »
Hola amigos de SvCommunity como siempre ando por aqui pidiendo vuestra ayuda, como dice el titulo, lo que necesito es validar que el contenido del campo se de este formato 0.0, he revisado algunos ejemplos con expresiones regulares donde admiten letras o numeros o viceversas pero no he encontrado uno de este tipo, espero me puedan ayudar.

Gracias.

Desconectado vlad

  • Global Moderator
  • The Communiter-
  • *
  • Mensajes: 6351
    • Qualium.net
Re: Validar campo de tipo 0.0 con jQuery (Ayuda)
« Respuesta #1 : marzo 23, 2012, 09:10:34 pm »
Código: [Seleccionar]
>>> console.log(/^[0-9]\.[0-9]$/.test('0.0'));
true
>>> console.log(/^[0-9]\.[0-9]$/.test('a.0'));
false
>>> console.log(/^[0-9]\.[0-9]$/.test('123'));
false
>>> console.log(/^[0-9]\.[0-9]$/.test('1.3'));
true

Eso es sin jQuery, es decir usando unicamente expresiones regulares de JavaScript.

Editado: esa expresión es para tu requerimiento especifico de "0.0" que lo entiendo como 1 número del 1 al 9 (el 0) 1 punto (el .) 1 número del 1 al 9 (el 0)
« Última Modificación: marzo 23, 2012, 09:16:22 pm por vlad »

Desconectado pippin

  • Sv Member
  • ***
  • Mensajes: 301
Re: Validar campo de tipo 0.0 con jQuery (Ayuda)
« Respuesta #2 : marzo 23, 2012, 09:18:16 pm »
Gracias vlad por tu respuesta pero la verdad no entiendo como debo implementarlo.

Desconectado vlad

  • Global Moderator
  • The Communiter-
  • *
  • Mensajes: 6351
    • Qualium.net
Re: Validar campo de tipo 0.0 con jQuery (Ayuda)
« Respuesta #3 : marzo 23, 2012, 09:25:47 pm »
Un ejemplo seria:

Código: [Seleccionar]
var campoValido = /^[0-9]\.[0-9]$/.test($("#ID_de_tu_campo_de_texto").val());

if (campoValido)
  // Es valido
else
  // No es valido
« Última Modificación: marzo 23, 2012, 09:27:42 pm por vlad »

Desconectado pippin

  • Sv Member
  • ***
  • Mensajes: 301
Re: Validar campo de tipo 0.0 con jQuery (Ayuda)
« Respuesta #4 : marzo 23, 2012, 10:01:05 pm »
Ecxelente tu solucion vlad, gracias. Ahora te pregunto algo si quiero que ese valor no sea superior a 5.0, tendria que hacer una formula independiente o podria utilizar esa tamien?

Ya he modificado para que el primer caracter sea solo hasta 5 poniendo [0-9] pero no se como hacer para que el tercer caractera vaya hasta 0 solo si el priero es 5.

Desconectado pippin

  • Sv Member
  • ***
  • Mensajes: 301
Re: Validar campo de tipo 0.0 con jQuery (Ayuda)
« Respuesta #5 : marzo 23, 2012, 10:11:06 pm »
Bueno lo he solucionado asi:

Código: [Seleccionar]
                $(".txtCalificacion").live("focusout", function(){
                   
                    //Expresion regular para validar la nota tiene que ir desde 0.0 hasta 5.0
                    var campoValido = /^[0-5]\.[0-9]$/.test($(this).val());
                   
                    if(!campoValido || $(this).val() > 5.0){
                        alert("Formato no Valido");
                        $(this).attr("value", "0.0");
                    }
                });

Desconectado Juancho

  • The Communiter-
  • *
  • Mensajes: 1311
Re: Validar campo de tipo 0.0 con jQuery (Ayuda)
« Respuesta #6 : marzo 24, 2012, 08:13:31 am »
Puedes tambn corregir en tu expresion regular que los numeros no sean mayores a 5.0, para qu la expresion regular te valide todo tu rango:

Te quedaria asi:

Código: [Seleccionar]
$(".txtCalificacion").live("focusout", function(){
                   
                    //Expresion regular para validar la nota tiene que ir desde 0.0 hasta 5.0
                    var campoValido = /^([0-4]\.[0-9]|5\.0)$/.test($(this).val());
                   
                    if(!campoValido){
                        alert("Formato no Valido");
                        $(this).attr("value", "0.0");
                    }
                });

Y "campoValido" cuanod se mayor que 5.0 te retornara FALSE
<a href="http://www.gametracker.com/player/%7BAiPI%7DJuancho/94.127.17.72:11480/" target="_blank">
<img src="http://cache.www.gametracker.com/player/%7BAiPI%7DJuancho/94.127.17.72:11480/b_560x95.png" border="0" width="560" height="95" alt="" />
</a>

Desconectado NoeL

  • Administrator
  • The Communiter-
  • *
  • Mensajes: 3257
    • SvCommunity
Re: Validar campo de tipo 0.0 con jQuery (Ayuda)
« Respuesta #7 : marzo 24, 2012, 11:21:02 am »
Una forma sencilla sin tener que reinventar la rueda es utilizando un Plugin muy funcional y completo que incluye varias validaciones útiles pueden revisar la documentación y descargar desde Aqui

Desconectado vlad

  • Global Moderator
  • The Communiter-
  • *
  • Mensajes: 6351
    • Qualium.net
Re: Validar campo de tipo 0.0 con jQuery (Ayuda)
« Respuesta #8 : marzo 24, 2012, 02:53:51 pm »
Una forma sencilla sin tener que reinventar la rueda es utilizando un Plugin muy funcional y completo que incluye varias validaciones útiles pueden revisar la documentación y descargar desde Aqui

Aunque si es la única válidación que necesita realizar creo que esta un poco exagerado utilizar un plugin adicional para una tarea tan sencilla, sobre todo si el pensaba utilizar jQuery solo para esa validación.

PD: la URL que pusiste esta mal.

Desconectado JaiMe

  • Global Moderator
  • The Communiter-
  • *
  • Mensajes: 1485
  • λ | h+
Re: Validar campo de tipo 0.0 con jQuery (Ayuda)
« Respuesta #9 : marzo 24, 2012, 04:42:19 pm »
Quizas usar el plugin no sea necesario para este problema, pero no es mala idea aprovechar la situación para usarlo. Ese plugin fue el primero que utilize para validación cuando estaba aprendiendo y lo recomiendo bastante. Agrega un poquito de complejidad pero es bastante útil.

El link correcto es http://bassistance.de/jquery-plugins/jquery-plugin-validation, la documentación esta en los docs oficiales de jQuery http://docs.jquery.com/Plugins/Validation

Aun con el uso del plugin, la regla de validación necesita expresiones regulares, para hacerlo solo necesitas agregar un metodo al namespace del plugin, en este caso lo he llamado tuRegla y he agregado la expresion regular de Juancho, pero estoy usando \d, el cual equivale a [0-9]

Código: [Seleccionar]
$.validator.addMethod('tuRegla', function(v, el){
    return /^([0-4]\.\d|5\.0)$/.test(v);
}, 'NOPE');

Luego, suponiendo que tu HTML es este

Código: [Seleccionar]
<form>
    <div id='status'></div>
    <input type='text' name='in'/>
    <input type='submit'/>
</form>​

Solamente llamas al metodo validate, pasando las opciones de configuración en un objeto literal. En la propiedad rules, asignamos el metodo tuRegla al campo de texto nombrado in

Código: [Seleccionar]
$('form').validate({
  rules:{
      in:{ tuRegla: true }
  },
  showErrors: function(map, list){
      updateStatus(map.in || 'ok');
  },
  submitHandler: function() {
      updateStatus("sent");
  }
});​

La función updateStatus es la manera en la que trato de mantener el código organizado y evitar repeticion

Código: [Seleccionar]
var updateStatus = function(status){
    $('#status').fadeOut(function(e){
        $(this).text(status).fadeIn();
    });
};

Podes revisar el demo aqui

http://jsfiddle.net/jaimem/ucxmz/1/

He saltado bastantes detalles, pero si tenes preguntas aqui estamos a la orden.
« Última Modificación: marzo 24, 2012, 04:49:36 pm por JaiMe »
"Unless you try to do something beyond what you have already mastered, you will never grow."
― Ralph Waldo Emerson

Desconectado pippin

  • Sv Member
  • ***
  • Mensajes: 301
Re: Validar campo de tipo 0.0 con jQuery (Ayuda)
« Respuesta #10 : marzo 25, 2012, 11:30:46 am »
Hos agradesco a todos por su ayuda, por eso quiero tanto este foro... Lo he solucionado utilizando la funcion que me paso vlad, el ejemplo de JaiMe esta muy bueno si fuese a utilizar la validacion en varios casos.

Gracias.

Desconectado krlos

  • The newbie
  • *
  • Mensajes: 1
Re:Validar campo de tipo 0.0 con jQuery (Ayuda)
« Respuesta #11 : febrero 17, 2013, 11:23:39 am »
Disculpen soy nuevo por aqui y  quisiera saber si la validación que han explicado puede hacerse con inputs generados vía ajax y como puedo implementarlo
gracias
 :sur:

Desconectado Jaru

  • The Communiter-
  • *
  • Mensajes: 13252
  • some text
Re:Validar campo de tipo 0.0 con jQuery (Ayuda)
« Respuesta #12 : febrero 17, 2013, 12:03:26 pm »
si se puede, pero los eventos hacelos con eventos que detecten elementos futuros o creados dinámicamente.

con ".on()" podes detectar eventos o atachar nuevos a ese tipo de elementos, lee mas sobre esto

http://api.jquery.com/on/
N/A

Desconectado JaiMe

  • Global Moderator
  • The Communiter-
  • *
  • Mensajes: 1485
  • λ | h+
Re:Validar campo de tipo 0.0 con jQuery (Ayuda)
« Respuesta #13 : febrero 17, 2013, 01:29:18 pm »
Disculpen soy nuevo por aqui y  quisiera saber si la validación que han explicado puede hacerse con inputs generados vía ajax y como puedo implementarlo
gracias
 :sur:

En el ejemplo que yo puse, solamente necesitas agregar una regla para elementos que sean de X clase, por ejemplo.

Código: [Seleccionar]
$.validator.addClassRules({
    test: {tuRegla: true }
});

donde `test` es el nombre de la clase y `tuRegla` es el metodo custom method que defini anteriormente.

Luego, solo agregas esa clase a los elementos que generes dinamicamente

Código: [Seleccionar]
$('form div').append("<input type='text' class='test' ");
El plugin guarda los resultados de la validación en un objeto mapa y cuyas propiedades son nombradas usando el atributo `name` de cada elemento validado. Así que es necesario nombrar los elementos generados dinamicamente. He actualizado el ejemplo aqui: http://jsfiddle.net/jaimem/ucxmz/3/

En el screenshot hay 3 inputs, nombrados `in-x` (zero index). Solo `in-1` ha pasado la validación.



"Unless you try to do something beyond what you have already mastered, you will never grow."
― Ralph Waldo Emerson