Estou em um projeto com Struts 1 e Hibernate e estou usando o plugin Jquery Validate para fazer as validações no lado cliente.
Algumas validações o plugin já trás, só que eu estou precisando de uma regra de validação que eu não se existe no plugin ou se é possível criar.
Tenho 2 campos de inscrição: eu preciso fazer com que pelo menos um deles seja obrigatoriamente preenchido, colocar um campo como obrigatório é fácil com esse plugin, só que eu estou querendo definir que apenas um dos dois campos precisa estar preenchido no plugin. Validar com javascript sem usar o plugin é simples, só que eu gostaria de validar tudo através dele para poder manter o padrão das mensagens de erro.
Se vc nao quiser que um campo sera validado eh soh nao adicionar uma regra para ele.
Exemplo
Eu tenho dois campos, text1 e text2 eu nao quero que o text2 seja validado, apenas o text1 e eu defini o text1 como obrigatorio (nao pode deixar em branco).
$(document).ready(function(){var_formRules={text1:{required:true}};var_errorMessages={text1:{required:"Error: Campo deve ser preenchido!"}}$("#submitbutton").click(function(){var_handler=$("#myform").validate({rules:_formRules,messages:_errorMessages});varstatus=$("#validationStatus");if(_handler.checkForm()){status.text("validation ok");}else{status.text("validation error");}});});​
Não é isso que eu estou tentando fazer não, o que estou precisando fazer e não sei se esse plugin me permite é o seguinte:
tenho dois campos: text1 e text2
eu sou obrigado a preencher pelo menos um dos dois (tanto faz se é o text1 ou o text2), se eu deixar os dois em branco é pra bater na validação.
exemplos:
text1 preenchido e text2 vazio -> aceita
text2 preenchido e text1 vazio -> aceita
text1 e text2 preenchidos -> aceita
text1 e text2 vazios -> não aceita (mensagem = por favor preencha ao “menos” um dos dois campos)
Não sei se o plugin aceita que eu faço isso de alguma forma através dele, se é possível, não sei como fazer.
entendeu agora a minha dúvida?
desde já agradeço e aguardo resposta.
W
windsofhell
igortsouza:
Fala windsofhell, obrigado por responder.
Não é isso que eu estou tentando fazer não, o que estou precisando fazer e não sei se esse plugin me permite é o seguinte:
tenho dois campos: text1 e text2
eu sou obrigado a preencher pelo menos um dos dois (tanto faz se é o text1 ou o text2), se eu deixar os dois em branco é pra bater na validação.
exemplos:
text1 preenchido e text2 vazio -> aceita
text2 preenchido e text1 vazio -> aceita
text1 e text2 preenchidos -> aceita
text1 e text2 vazios -> não aceita (mensagem = por favor preencha ao “menos” um dos dois campos)
Não sei se o plugin aceita que eu faço isso de alguma forma através dele, se é possível, não sei como fazer.
entendeu agora a minha dúvida?
desde já agradeço e aguardo resposta.
Aha! ok!
Da pra fazer sim, vc tem que definir uma regra (rule) condicional, vc vai precisar fazer algo do tipo:
Boa noite windsofhell, era isso mesmo que eu estava querendo fazer.
Muito obrigado pela ajuda, tem algum lugar para eu dizer que o tópico foi resolvido.
Aproveitando o tópico sobre esse tema, vou te perguntar mais duas coisas:
é possível usar esse plugin com validação indo ao banco?
Exemplo: algum campo que não permita valores duplicados, como cnpj, cpf, etc, digamos que eu fosse ao banco de dados usando ajax e essa informação já existisse no mesmo e não fosse possível cadastrar o valor digitado nesse campo, teria como fazer uma validação desse tipo usando o plugin jquery. Uma validação que poderia ser chamada no onchange no campo ou no submit do form. É possível fazer uma requisicao ajax e de acordo com a resposta, retornar um resultado para o cliente, usando o jquery validator?
Se eu tiver uma quantidade indefinida de campos input com o mesmo valor para o atributo name, digo indefinida, pois posso adicionar novos campos através de um botao,
como eu faria para a validação do plugin funcionar? Tem como fazer uma validação de uma lista de elementos com o mesmo valor no atributo name?
W
windsofhell
igortsouza:
Boa noite windsofhell, era isso mesmo que eu estava querendo fazer.
Muito obrigado pela ajuda, tem algum lugar para eu dizer que o tópico foi resolvido.
Sem problemas. Legal que deu certo!
Entao, eh soh editar o titulo do seu post e colocar [RESOLVIDO] na frente do titulo. Nao apague o titulo, soh adicione o resolvido na frente.
Nunca fiz algo parecido com JQuery, mas parece ser possivel fazer usando CSS selectors, se vc tiver uma classe .requiredfield e adicionar uma regra que todos os campos que possuem essa classe sao required:
$(".requiredfield").rules("add",{required:true});
Ai se vc adiciona um campo dinamicamente (como vc disse clicando num botao), o que vc pode fazer eh atribuir uma css class para o seu novo campo, por exemplo: “.requiredfield”, isso vai fazer com que quando vc chamar a funcao para validar vai automaticamente validar todos os campos que possuem essa classe.
Se vc tiver um campo dessa forma, vai ser validado: