Eu tenho procurado maneiras de que o jQuery grave automaticamente a gravação necessária, usando a validação html5 em todos os meus campos de entrada, mas estou tendo problemas para informar onde escrevê-lo.
Eu quero pegar isso
<input type="text" name="first_name" value="" id="freeform_first_name"
maxlength="150">
e tê-lo automaticamente adicionar exigido antes da tag de fechamento
<input type="text" name="first_name" value="" id="freeform_first_name"
maxlength="150" required>
Eu pensei que eu poderia fazer algo ao longo das linhas de
$("input").attr("required", "true");
Mas isso não funciona. Qualquer ajuda é muito apreciada.
javascript
jquery
validation
Miura-shi
fonte
fonte
$(function(){....});
Respostas:
DEMO FIDDLE
fonte
TypeError: element.prop is not a function
erro<form></form>
tags no seu jsFiddle.prop('required',true)
para a entrada antes de ligá.css("display", "block")
-la.Você pode fazer isso usando attr, o erro que cometeu é colocar as verdadeiras aspas internas. em vez disso, tente o seguinte:
fonte
required
é um atributo booleano e só deve ser omitido (para "false") ou ter o mesmo valor que seu nome (ie"required"
) para "true". Na verdade, é melhor usar.prop()
.prop()
não funciona lá como nos navegadores modernos. Ainda é melhor usar$(ele).attr("required", true)
efalse
remover.Eu descobri que as seguintes implementações são eficazes:
Esses comandos (attr, removeAttr, prop) se comportam de maneira diferente, dependendo da versão do JQuery que você está usando. Consulte a documentação aqui: https://api.jquery.com/attr/
fonte
Usando o
.attr
métodoUsando
.prop
Leia mais aqui
fonte
Eu descobri que o jquery 1.11.1 não faz isso de maneira confiável.
Eu usei
$('#estimate').attr('required', true)
e$('#estimate').removeAttr('required')
.A remoção
required
não era confiável. Às vezes, deixava orequired
atributo sem valor. Comorequired
é um atributo booleano, sua mera presença, sem valor, é vista pelo navegador comotrue
.Esse bug era intermitente e eu me cansei de mexer com ele. Mudou para
document.getElementById("estimate").required = true
edocument.getElementById("estimate").required = false
.fonte
removeAttr
não funciona para mim. Então eu uso sua solução e funciona bem. Obrigado!Não deve incluir true com aspas duplas "", deve ser como
Também você pode usar prop
Em vez de verdadeiro, você pode tentar o necessário. Tal como
fonte