Generalmente, si presume che il nome sia sempre sostituito da id . Questo è vero, in una certa misura, ma non per i campi dei moduli e i nomi dei frame , praticamente parlando. Ad esempio, con gli elementi del modulo l' name
attributo viene utilizzato per determinare le coppie nome-valore da inviare a un programma sul lato server e non deve essere eliminato. Browsers do not use id in that manner
. Per essere al sicuro, è possibile utilizzare gli attributi name e id sugli elementi del modulo. Quindi, scriveremo quanto segue:
<form id="myForm" name="myForm">
<input type="text" id="userName" name="userName" />
</form>
Per garantire la compatibilità, avere una corrispondenza dei valori di nome e attributo id quando entrambi sono definiti è una buona idea. Tuttavia, fai attenzione: alcuni tag, in particolare i pulsanti di opzione, devono avere valori nominali non unici, ma richiedono valori ID univoci. Ancora una volta, questo dovrebbe fare riferimento al fatto che id non è semplicemente un sostituto del nome; hanno uno scopo diverso. Inoltre, non scartare l'approccio vecchio stile, uno sguardo approfondito alle librerie moderne mostra tale stile di sintassi usato a volte per prestazioni e facilità. Il tuo obiettivo dovrebbe essere sempre a favore della compatibilità.
Ora nella maggior parte degli elementi, l'attributo name è stato deprecato a favore dell'attributo id più diffuso. Tuttavia, in alcuni casi, in particolare formare campi ( <button>
, <input>
, <select>
e <textarea>
), la vita di attributo nome sul perché continua ad essere richiesto per impostare la coppia nome-valore per la forma di presentazione. Inoltre, scopriamo che alcuni elementi, in particolare frame e collegamenti, possono continuare a utilizzare l'attributo name perché è spesso utile per recuperare questi elementi per nome.
Esiste una chiara distinzione tra id e nome. Molto spesso quando il nome continua, possiamo impostare i valori allo stesso modo. Tuttavia, id deve essere univoco e il nome in alcuni casi non dovrebbe — pensare ai pulsanti di opzione. Purtroppo, l'unicità dei valori ID, sebbene catturata dalla convalida del markup, non è coerente come dovrebbe essere. L'implementazione CSS nei browser disegnerà oggetti che condividono un valore ID; pertanto, potremmo non rilevare errori di markup o di stile che potrebbero influire sul nostro JavaScript fino al runtime.
Questo è tratto dal libro JavaScript- The Complete Reference by Thomas-Powell