Ir para conteúdo

POWERED BY:

Arquivado

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

pinoc

Combo box e validate

Recommended Posts

Denovo pedindo ajudar sobre o validate HEHE.

To com o seguinte problema no site que eu to fazendo tem muito formulario, e alguns tem um combo box da seguinte forma abaixo.

 

<label for="select" class="txt">Mês:</label>
  <select name="mes" id="mes">
       <option>Selecione</option>
       <option>Janeiro</option>
       <option>Fevereiro</option>
<option>Março</option>
<option>Abril</option>
<option>Maio</option>
<option>Junho</option>
<option>Julho</option>
<option>Agosto</option>
<option>Setembro</option>
<option>Outubro</option>
<option>Novembro</option>
<option>Dezembro</option>
  </select>

 

Gostaria de fazer o validate validar o combo se tiver selecione ali no combo ele não deixa passar obrigando a selecionar um dos outros campos.

 

Alguem pode me da uma forcinha?

Compartilhar este post


Link para o post
Compartilhar em outros sites

crie um método de validação exatamente como fizemos no outro tópico

 

utilizando uma função parecida com essa..

function validaSelect(value, element){
   if(value == 'Selecione') return false;
   return true;
}

 

tem um errinho html ali...

 

<label for="mes" class="txt">Mês:</label>

Compartilhar este post


Link para o post
Compartilhar em outros sites

crie um método de validação exatamente como fizemos no outro tópico

 

utilizando uma função parecida com essa..

function validaSelect(value, element){
   if(value == 'Selecione') return false;
   return true;
}

 

tem um errinho html ali...

 

<label for="mes" class="txt">Mês:</label>

 

Cara fiz assim.

 

jQuery.validator.addMethod("selecione", function validaSelect(value, element){
   if(value == 'Selecione') return false;
   return true;
}, "Selecione um campo.");

 

Ta certo ne?

pq ta dando um errinho que fica exibindo mesmo mudando de selecione para outro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

é isso ae xD

jQuery.validator.addMethod("selecione", function validaSelect(value, element){
   return value !== 'Selecione';
}, "Selecione um campo.");

 

isso ae vai retorna verdadeiro se value for diferente de 'Selecione'

 

verifique se o value está chegando nessa função (dando um alert ou log/debug antes do return)

 

você tbm precisa setar suas regras (exatamente como foi feito no outro topico)

campo:{
   selecione: true
}

 

kk coisa tamo ae

Compartilhar este post


Link para o post
Compartilhar em outros sites

é isso ae xD

jQuery.validator.addMethod("selecione", function validaSelect(value, element){
   return value !== 'Selecione';
}, "Selecione um campo.");

 

isso ae vai retorna verdadeiro se value for diferente de 'Selecione'

 

verifique se o value está chegando nessa função (dando um alert ou log/debug antes do return)

 

você tbm precisa setar suas regras (exatamente como foi feito no outro topico)

campo:{
   selecione: true
}

 

kk coisa tamo ae

 

Cara fiz todos os testes possiveis que a gente fez nos problema da LETRAS.

E nada continua exibindo a msg depois de selecionar outro campo do combo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

informe os values e deixe o value do selecione vazio:

 

 

        <option value="">Selecione</option>
       <option value="Janeiro">Janeiro</option>
       <option value="Fevereiro">Fevereiro</option>

...

ai você nem precisa fazer nada.. o validate por padrão já vai validar isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

pois é pinoc infelizmente não sei oq ta rolando ae...

tenta assim...

 

 

eu testei com js puro funciono na boa.. como disse no outro topico tem um tempo q não uso jQuery.. Dojo é mto melhor...

 

 

return element.value !== 'Seleciona';

 

testei ak funciono normal qual é o erro?

 

   <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">

       jQuery.validator.addMethod("verificaSelecione", function validaSelect(value, element){
           return value !== 'Selecione';
       }, "Selecione um campo.");

       $(document).ready(function(){
           $('#form').validate({
               rules:{
                   mes: {
                       verificaSelecione: true
                   },
                   messages:{
                       mes:{

                       }
                   }
               }
           });
       });

   </script>
</head>
<body>
<form id="form" onsubmit="return false;">
   <label for="mes" class="txt">Mês:</label>
   <select name="mes" id="mes">
       <option>Selecione</option>
       <option>Janeiro</option>
       <option>Fevereiro</option>
       <option>Março</option>
       <option>Abril</option>
       <option>Maio</option>
       <option>Junho</option>
       <option>Julho</option>
       <option>Agosto</option>
       <option>Setembro</option>
       <option>Outubro</option>
       <option>Novembro</option>
       <option>Dezembro</option>
   </select>
   <input type="submit" />
</form>
</body>

Compartilhar este post


Link para o post
Compartilhar em outros sites

William Bruno

 

Realmente funciona da forma que você falo.

Mais tipo se eu clicar em enviar deixando Selecione ele aparece a mensagem de erro, certo até ai, mas quando eu selecione Janeiro por exemplo ele continuar exibindo a msg mesmo clicando denovo para enviar o form.

Compartilhar este post


Link para o post
Compartilhar em outros sites

oi @pinoc,

 

como ficou o teu código agora?

se você informar o value em todos os meses, exatamente como falei, vai dar certo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

HTML

 

<label for="mes" class="txt">Mês:</label>
    <select name="mes" id="mes">
       <option value"">Selecione</option>
       <option value"Janeiro">Janeiro</option>
<option value"Fevereiro">Fevereiro</option>
<option value"Março">Março</option>
<option value"Abril">Abril</option>
<option value"Maio">Maio</option>
<option value"Junho">Junho</option>
<option value"Julho">Julho</option>
<option value"Agosto">Agosto</option>
<option value"Setembro">Setembro</option>
<option value"Outubro">Outubro</option>
<option value"Novembro">Novembro</option>
<option value"Dezembro">Dezembro</option>
</select>

 

JS

$(document).ready(function(){
  $('.valida').validate({
     rules:{
         mes: {
     required: true,
  }
},
messages:{
    mes: {
     required: "O campo Mes é obrigatorio."
   },
  }
});
});

 

Pelo que sei esta tudo certo, mais ele fica exibindo a msg o tempo todo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara acredito q deve ter erro na sua função de enviar..

 

antes de dar submit verifique se esse problema está ocorrendo.. se não algo na sua função enviar ta travando seu js por isso a msg continua ali após o envio e não sai mais..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então Vadio também pensei nisso de inicio mais o envio não acontece justamente por que o validate não libero a validação no campo.

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.