Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

pinoc

[Resolvido] Jquery validate

Recommended Posts

Opa pessoal.

 

Estou ussando em meus formularios o plugin validate do jquery, o problema que não achei no google e em nem um outro lugar uma forma de fazer o plugin bloquear caracteres que não quero.

 

Por exemplo quero que o campo nome so possa ser digitado letras.

Sei que tem provavelmente como criar um filtro para isso mais não faço a minima ideia de como criar

Alguem poderia me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

infelizmente o jQuery.validation não possui regexp para validação como tem no dojoToolkit..

 

http://docs.jquery.com/Plugins/Validation/Validator/addMethod#namemethodmessage]

 

você precisa criar um método para o validator e utilizar

 

exemplo em Dojo

 

somente digitos de 1 a 8 máximo 1caractere

           var pattern = "^[1-8]{1}$"
           var missingMessage = 'Campo Obrigatório';
           var invalidMessage = 'O valor inserido não é válido';

           var input = new ValidationTextBox({
               name: 'name_input',
               required: true,
               missingMessage: missingMessage,
               regExp: pattern,
               invalidMessage: invalidMessage,
               placeHolder: 'Questão 1'
           },'id_node_ref');

Compartilhar este post


Link para o post
Compartilhar em outros sites

infelizmente o jQuery.validation não possui regexp para validação como tem no dojoToolkit..

 

http://docs.jquery.com/Plugins/Validation/Validator/addMethod#namemethodmessage]

 

você precisa criar um método para o validator e utilizar

 

exemplo em Dojo

 

somente digitos de 1 a 8 máximo 1caractere

           var pattern = "^[1-8]{1}$"
           var missingMessage = 'Campo Obrigatório';
           var invalidMessage = 'O valor inserido não é válido';

           var input = new ValidationTextBox({
               name: 'name_input',
               required: true,
               missingMessage: missingMessage,
               regExp: pattern,
               invalidMessage: invalidMessage,
               placeHolder: 'Questão 1'
           },'id_node_ref');

 

E como eu faria isso, para aceitar apenas letras.

Compartilhar este post


Link para o post
Compartilhar em outros sites

você cria seu metodo de validação

 

assim:

function is_string(value,element){
   var regExp = /{a-z}/i
   return regExp.test(value);
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

você cria seu metodo de validação

 

assim:

function is_string(value,element){
   var regExp = /{a-z}/i
   return regExp.test(value);
}

 

 

Cara desculpa minha ignorancia mais so pesimo em java.

Meu codigo de validação esta abaixo.

Como eu faria para colocar esse codigo que você fez no meu codigo?

 

$(document).ready(function(){
   $('#form_socio').validate({
      rules:{
         nome: {
           required: true,
           minlength: 2,
      },
      messages:{
        nome:{
           required: "O campo nome é obrigatorio.",
           minlength: "O campo nome deve conter no mínimo 2 caracteres.",
      }}
   });
 });

Compartilhar este post


Link para o post
Compartilhar em outros sites

javascript... java é otra coisa...

 

//MeuMetodoDeValidacao.js

jQuery.validator.addMethod("is_string", function(value, element) { 
   var regExp = /{a-z}/i
   return regExp.test(value)
}, "Por favor insira somente caracteres alfabeticos");

 

//validacaoForm.js

$("#myform").validate({
 rules: {
   field: "is_string"
 }
});

 

de o load no método criado dentro da pág do form e boa...

 

cod não testado..

Compartilhar este post


Link para o post
Compartilhar em outros sites

http://docs.jquery.com/Plugins/Validation pois é num vo faze pra você já te passei a forma de como você deve fazer.. agora só implementa...

 

como você ta fazendo ele chega a chamar a função is_string?

 

$('#form_socio').validate({
      rules:{
         nome: {
           required: true,
           minlength: 2,
           is_string: true
      },
      messages:{
        nome:{
           required: "O campo nome é obrigatorio.",
           minlength: "O campo nome deve conter no mínimo 2 caracteres.",
      }}

 

q foi um método criado por você

com essas linha

jQuery.validator.addMethod("is_string", function(value, element) { 
   var regExp = /{a-z}/i
   return regExp.test(value)
}, "Por favor insira somente caracteres alfabeticos");

 

da um alert() ou um console.debug / log e faça a verificação eu não uso jQuery..

 

tamo ae

Compartilhar este post


Link para o post
Compartilhar em outros sites

http://docs.jquery.com/Plugins/Validation pois é num vo faze pra você já te passei a forma de como você deve fazer.. agora só implementa...

 

como você ta fazendo ele chega a chamar a função is_string?

 

$('#form_socio').validate({
      rules:{
         nome: {
           required: true,
           minlength: 2,
           is_string: true
      },
      messages:{
        nome:{
           required: "O campo nome é obrigatorio.",
           minlength: "O campo nome deve conter no mínimo 2 caracteres.",
      }}

 

q foi um método criado por você

com essas linha

jQuery.validator.addMethod("is_string", function(value, element) { 
   var regExp = /{a-z}/i
   return regExp.test(value)
}, "Por favor insira somente caracteres alfabeticos");

 

da um alert() ou um console.debug / log e faça a verificação eu não uso jQuery..

 

tamo ae

 

Cara agora ele ate chamou o is_string, mais ele ta exibindo a mensagem mesmo que tenha so letra no campo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

intendi então na função da uns alert

 

 

alert(value);
alert(element);
alert(pattern.test(value));

 

verifique se os dados tão chegando para função;

Compartilhar este post


Link para o post
Compartilhar em outros sites

intendi então na função da uns alert

 

 

alert(value);
alert(element);
alert(pattern.test(value));

 

verifique se os dados tão chegando para função;

 

alert(value); exibiu

alert(element); exibiu

alert(pattern.test(value)); esse não exibiu

Compartilhar este post


Link para o post
Compartilhar em outros sites

é eu nomeei como regExp por isso não exibiu o ultimo alert.

 

 

altere o cod dessa maneira

 

função is_string

var regExp = /[0-9]/
if(regExp.text(value)) return false;
else return true;

 

dessa maneira não será possivel add numeros mas poderá add caracteres especiais

 

para não aceitar caracteres e pontuação você precisa alterar o pattern (/[0-9]/) para agir da forma q você precisa ex.:

 

var pattern = /^[0-9]\?\!\@\#\$\%\*\(\)$/ //pode ser q de erro tem q ver a expressão correta

alert(pattern.test('asdasdasdasd'));
alert(pattern.test('980ASD'));
alert(pattern.test('@#$'));

Compartilhar este post


Link para o post
Compartilhar em outros sites

é eu nomeei como regExp por isso não exibiu o ultimo alert.

 

 

altere o cod dessa maneira

 

função is_string

var regExp = /[0-9]/
if(regExp.text(value)) return false;
else return true;

 

dessa maneira não será possivel add numeros mas poderá add caracteres especiais

 

para não aceitar caracteres e acentos você precisa alterar o pattern (/[0-9]/) para agir da forma q você precisa

 

Cara se eu fiz certo, não funciona nem exibi a mensagem.

 

jQuery.validator.addMethod("is_string", function(value, element) { 
   var regExp = /[0-9]/
if(regExp.text(value)) return false;
else return true;
}, "Por favor insira somente caracteres alfabeticos");

Compartilhar este post


Link para o post
Compartilhar em outros sites

acho q com essa alteração já funciona...

$('#form_socio').validate({
      rules:{
         nome: {
           required: true,
           minlength: 2,
           is_string: false
      },
      messages:{
        nome:{
           required: "O campo nome é obrigatorio.",
           minlength: "O campo nome deve conter no mínimo 2 caracteres.",
           is_string: 'minha msg de erro'
      }}

Compartilhar este post


Link para o post
Compartilhar em outros sites

acho q com essa alteração já funciona...

$('#form_socio').validate({
      rules:{
         nome: {
           required: true,
           minlength: 2,
           is_string: false
      },
      messages:{
        nome:{
           required: "O campo nome é obrigatorio.",
           minlength: "O campo nome deve conter no mínimo 2 caracteres.",
           is_string: 'minha msg de erro'
      }}

 

 

Vadio

 

Continua sem exibir a mensagem.

Compartilhar este post


Link para o post
Compartilhar em outros sites

deve ta ocorrendo algum erro de lógica meu ae..

 

a função está sendo chamada já é um avanço..

 

faz assim da um alert no retorno da função

if(regExp.text(value)) alert('false');
else alert('true');

 

teoricamente esse metodo deve retornar true se tiverem numeros ele aceita caracteres especiais

então você devera setar q ele retorne true ou exiba msg de erro

$('#form_socio').validate({
      rules:{
         nome: {
           required: true,
           minlength: 2,
           is_string: true
//...

Compartilhar este post


Link para o post
Compartilhar em outros sites

deve ta ocorrendo algum erro de lógica meu ae..

 

a função está sendo chamada já é um avanço..

 

faz assim da um alert no retorno da função

if(regExp.text(value)) alert('false');
else alert('true');

 

teoricamente esse metodo deve retornar true se tiverem numeros ele aceita caracteres especiais

então você devera setar q ele retorne true ou exiba msg de erro

$('#form_socio').validate({
      rules:{
         nome: {
           required: true,
           minlength: 2,
           is_string: true
//...

 

 

Continua sem exibir nada. :/

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara.. sei lá era pra da certo de alguma forma assim

 

aqui tem um tutorial

http://wbruno.com.br/2011/03/22/adicionar-metodo-plugin-jquery-validate/

 

de como criar o seu metodo de validação ...

 

desculpe mas não sei oq ta rolando era pra roda..

 

na moral larga o jQuery e usa dojo.. mto mais simples mto mais rapido

 

HAHA.

Tranquilo cara já me ajudo bastante vo me virar aqui.

Valeu pela ajuda, se eu achar como fazer funcionar posto aqui.

 

Cara fiz funcionar seu codigo.

 

jQuery.validator.addMethod("letra", function(value, element) { 
var regExp = /[a-z]/
if(regExp.test(value)) return true;
else return false;
}, "Por favor insira somente caracteres alfabeticos");

 

Você coloco com text eu mudei para test funciono pq não sei HEHHE

if(regExp.text(value)) return true;

 

Porem ele ta com um bugzinhu que acho que você consegue me ajudar facio.

Se eu colocar apenas numero ele exibe que nao pode, mas se eu colocar uma letra e numero ele deixa passar pois tem letra.

 

Consegui me ajudar so mais essa?

Compartilhar este post


Link para o post
Compartilhar em outros sites

alterei ak funcionou

 

acho q deu erro por causa q ja existe a função is_string do js..

 

   <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
   <script type="text/javascript" src="http://jzaefferer.github.com/jquery-validation/jquery.validate.js"></script>
   <script type="text/javascript">


       $(document).ready(function(){

           jQuery.validator.addMethod("isString", function(value, element) {
               var regExp = /[0-9]/;
               if(regExp.test(value)) return false;

               return true
           }, "Por favor insira somente caracteres alfabeticos");


           $('#form_socio').validate({
               rules:{
                   nome: {
                       required: true,
                       minlength: 2,
                       isString: true
                   },
                   messages:{
                       nome:{
                           required: "O campo nome é obrigatorio.",
                           minlength: "O campo nome deve conter no mínimo 2 caracteres."
                       }
                   }
               }
           });


       });
   </script>
<!-- ... -->
   <form id="form_socio" name="form_socio" method="POST" action="#" onsubmit="return false; ">
       <input id='nome' name="nome"/>
       <input type="submit" />
   </form>
<!-- ... -->

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.