2012-04-15 12 views
21

sono occupato con qualcosa per la scuola in HTML 5.HTML 5 ID ingresso differenza e nome input?

Quindi ecco la mia porzione di codice

<label for="name">Name</label> 
<input type="text" id="name" name="name" placeholder="your name" required><br> 

Quindi la mia domanda è in realtà:

Qual è la differenza tra il nome e l'ID? scopo? quale è più importante?

+0

Un'altra cosa, tra l'altro: "nome" è una parola riservata in javascript e potrebbe portare a comportamenti errati. –

risposta

47

In breve, lo name è l'identificativo che viene inviato al server quando si invia il modulo. Il id è un identificativo univoco per il browser, clientide, per javascript e così via.

18

L'attributo name è per l'invio di un elemento del modulo al server; molti elementi possono condividere lo stesso name (ad esempio i pulsanti di opzione, che devono avere lo stesso nome all'interno del set).

L'attributo id è per identificare in modo univoco qualsiasi elemento (non solo gli elementi del modulo). È deve essere unico in tutto l'intero documento.

+2

E: una buona pratica comune per prevenire il sovraccarico cerebrale è quella di utilizzare lo stesso valore per l'ID e il nome, quando entrambi sono necessari. (E, usa lo stesso nome delle variabili nei programmi php/javascript che mantengono denotato il nodo o il suo valore, e mantienilo simile all'etichetta mostrata sulla pagina.) Per i pulsanti di scelta (dove il nome è condiviso tra più nodi/id), usa nomi chiaramente corrispondenti, ad es. 'name =" buttons "id =" buttons-yes "'. –

7

L'attributo id deve essere univoco nel documento. Solo un elemento può avere un determinato ID. document.getElementById() trova il primo elemento con il dato id.

L'attributo name viene utilizzato dai moduli come chiave in una coppia chiave/valore quando si invia il modulo. L'attributo value viene visualizzato nel browser e inviato con il modulo.

Né è "più importante", sono solo diversi. Se hai una mentalità XML, sono entrambi solo attributi su un nodo. In HTML hanno però più significato.