2013-10-03 9 views
86

Sono stato alla ricerca dei modi per fare in modo che jQuery scrivesse automaticamente utilizzando la convalida html5 in tutti i miei campi di input, ma ho difficoltà a dirgli dove scriverlo.jQuery add obbligatorio per immettere i campi

Voglio prendere questa

<input type="text" name="first_name" value="" id="freeform_first_name" 
maxlength="150"> 

e lo hanno aggiungere automaticamente richiesto prima del tag di chiusura

<input type="text" name="first_name" value="" id="freeform_first_name" 
maxlength="150" required> 

ho pensato che avrei potuto fare someting sulla falsariga di

$("input").attr("required", "true"); 

Ma non funziona. Qualsiasi aiuto è molto apprezzato.

+1

Non è avvolto in dom ready? '$ (function() {....});' – PSL

+0

Sto usando questo http://jsfiddle.net/japaneselanguagefriend/LEZ4r/ –

+0

se 'input' è un id alla jquery manca il # nel selettore qui . –

risposta

229
$("input").prop('required',true); 

DEMO FIDDLE

+1

Hmm, aggiunto un pulsante di invio ma non ancora convalidando o aggiungendo l'attributo richiesto ai campi di input. http://jsfiddle.net/japaneselanguagefriend/LEZ4r/ –

+1

@AoiHana Funziona bene. http://jsfiddle.net/LEZ4r/1/ – Unknown

+0

se 'input' è un ID il jquery manca il # nel selettore qui. –

33

È possibile farlo utilizzando attr, l'errore che hai fatto è che si mette la vera tra virgolette. invece di che provare questo:

$("input").attr("required", true); 
+0

se 'input' è un ID il jquery manca il # nel selettore qui. –

+2

@JohnMeyer "input" è il nome di un selettore di tag – dave4jr

1

ho scoperto che jquery 1.11.1 non lo fa in modo affidabile.

Ho usato $('#estimate').attr('required', true) e $('#estimate').removeAttr('required').

La rimozione di required non era affidabile. A volte lasciava l'attributo required senza valore. Poiché required è un attributo booleano, la sua semplice presenza, senza valore, è vista dal browser come true.

Questo errore era intermittente e mi sono stancato di scherzare con esso. Passato a document.getElementById("estimate").required = true e document.getElementById("estimate").required = false.

+0

'removeAttr' non funziona per me. Quindi uso la soluzione e funziona perfettamente. Grazie! –

17

Ho scoperto che le seguenti implementazioni sono efficaci:

$('#freeform_first_name').removeAttr('required'); 

$('#freeform_first_name').attr('required', 'required'); 

Questi comandi (attr, removeAttr, puntello) si comportano in modo diverso a seconda della versione di jQuery che si sta utilizzando. Si prega di fare riferimento alla documentazione qui: https://api.jquery.com/attr/

Problemi correlati