2013-10-19 17 views
5

Ho un modulo semplice che contiene alcuni campi obbligatori.Come verificare se l'attributo richiesto è impostato su un campo

<form name="form" method="post"> 
<pre> 
<label>  Name: </label><input type="text" name="name" required> 
<label> Address: </label><input type="text" name="add" required> 
<label>Telephone: </label><input type="text" name="tel"> 
<input type="submit" value="Submit Form"> 
</pre> 
</form> 

So che è possibile impostare l'attributo desiderato con document.forms['form']['name'].required = false. Ma c'è un modo in cui è possibile controllare se l'attributo richiesto è impostato o no? Ho provato a utilizzare getattribute() ma restituisce solo vuoto. Ho anche provato a utilizzare il codice seguente, ma esegue sempre l'istruzione, anche se l'attributo richiesto non è impostato (ad esempio nel campo telefonico).

if(document.forms['form']['name'].required = true) 
    label.innerHTML += " (required)" 

Qualcuno sa di un senso che posso fare questo?

Aggiornamento: Sia l'impostazione del if per == invece di = e l'utilizzo di lavoro hasAttribute, grazie.

+5

Fai che un '==' 'in se()'. Oppure fare qualcosa come 'alert (" value: "+ document.forms ['form'] ['name']. Required);' e controlla quel valore. – sjngm

+0

Forse non sto capendo, ma se 'getAttribute' restituisce o' null' o '" "', significa che l'attributo non esiste su quell'elemento, che è ciò che vuoi sapere. – ultranaut

+0

Il tuo bisogno di fare un controllo, non l'assegnazione. Dovrebbe funzionare, cioè controllare per 'if (richiesto da document.forms ['form'] ['name'].)'. Qui si assegna invece di test a causa di '=' che restituirà sempre true. – PSL

risposta

8

Prova questo:

var elem = document.getElementsByTagName('input')[0]; 

if(elem.hasAttribute('required')){ 
//do your stuff 
}