Estou tentando validar o elemento html select usando o plugin jQuery Validate. Eu defino a regra "required" como true, mas ela sempre passa na validação porque o índice zero é escolhido por padrão. Existe alguma maneira de definir o valor vazio usado pela regra exigida?
UPD. Exemplo. Imagine que temos o seguinte controle html:
<select>
<option value="default">Choose...</option>
<option value="1">1</option>
<option value="2">2</option>
</select>
Quero que o plugin de validação use o valor "padrão" como vazio.
jquery
jquery-validate
SiberianGuy
fonte
fonte
Respostas:
Você pode escrever sua própria regra!
fonte
$.validator.addMethod("valueNotEquals", function(value, element, arg){ return return arg != jQuery(element).find('option:selected').text(); }, "Value must not equal arg.");
Uma solução mais fácil foi descrita aqui: Validar caixa de seleção
Deixe o valor vazio e inclua o atributo necessário
fonte
basta definir o valor da primeira opção como string vazia
value=""
e regra de validação de jquery
required
will work
fonte
usar regra min
defina o valor da primeira opção como 0
fonte
Você só precisa colocar
validate[required]
como classe dessa seleção e, em seguida, colocar uma opção com o valor = ""por exemplo:
fonte
Não sei como foi o plug-in no momento em que a pergunta foi feita (2010), mas enfrentei o mesmo problema hoje e o resolvi da seguinte maneira:
Atribua um atributo de nome à sua tag de seleção. Por exemplo, neste caso
<select name="myselect">
Em vez de trabalhar com o atributo value = "default" na opção de tag, desative a opção padrão ou defina value = "" conforme sugerido por Andrew Coats
<option disabled="disabled">Choose...</option>
ou
<option value="">Choose...</option>
Defina a regra de validação do plug-in
$( "#YOUR_FORM_ID" ).validate({ rules: { myselect: { required: true } } });
ou
<select name="myselect" class="required">
Obs: A solução da Andrew Coats funciona apenas se você tiver apenas uma seleção no seu formulário. Se você deseja que sua solução funcione com mais de uma seleção, adicione um atributo de nome à sua seleção.
Espero que ajude! :)
fonte
required
atributo à<select>
tag e adicionardisabled
atributo para o primeiro<option>
tag (ou aquele com oselected
atributo se houver)Aqui está o exemplo simples e compreensível:
JQuery:
fonte
o valor selecionado ficará em branco
fonte
É simples, você precisa obter o valor do campo Selecionar e ele não pode ser "padrão".
fonte
A solução mencionada pelo @JMP funcionou no meu caso com uma pequena modificação: eu uso em
element.value
vez devalue
noaddmethod
.É possível que eu tenha um caso especial aqui, mas não localizei a causa. Mas a solução do @ JMP deve funcionar em casos regulares.
fonte
como validar o select "qualifica" tem 3 escolha
fonte