2010-11-08 15 views
27

Sto lavorando su un'applicazione incorporare Flash in una pagina web utilizzando il metodo Satay:Va bene per un elemento HTML avere lo stesso [nome] come [id]?

<object type="application/x-shockwave-flash" data="embeddy.swf" 
id="embeddy" name="embeddy"> 
    <param name="movie" value="embeddy.swf" /> 
</object>

voglio flash per fornire la corretta objectID in ExternalInterface.objectID, il che significa che ho bisogno di impostare entrambi gli attributi name e id per il object.

Normalmente cerco di evitare di denominare le collisioni con gli elementi in HTML, ma c'è qualcosa di sbagliato nell'impostazione di entrambi gli attributi sullo stesso valore in questo caso?

E i moduli HTML? Qualcuno ritiene che valga la pena di impostare uno (n) (input | select | textarea) gli attributi name e id dell'elemento con lo stesso valore?

risposta

46

Si utilizzano gli ID per la manipolazione di JavaScript.

Si utilizzano i nomi per l'invio del campo modulo.

I due non sono correlati. Quindi, impostare entrambi sullo stesso valore è OK, ma non è necessario.

+9

Inoltre, gli ID devono essere univoci, ma i nomi non devono essere univoci. – jordanbtucker

+0

Ida vengono anche utilizzati per il collegamento tramite identificatore di frammento e per lo stile tramite il loro uso nei selettori CSS –

+0

Gli ID sono per una più semplice manipolazione di JavaScript, ma è possibile eseguire alcune operazioni per nome utilizzando JavaScript. –

0

Faccio tutto il tempo (principalmente perché alcuni browser in passato - IE viene in mente - utilizzare solo il parametro name quando si inviano i dati del modulo). L'utilizzo di ID rende il codice di convalida della forma molto più pulito, IMO.

+3

I browser sono solo * supposto * utilizzare il parametro name per l'invio dei dati del modulo – Gareth

+1

Anche se non si utilizzerebbe lo stesso valore 'name' e' id' per pulsanti di opzione o caselle di controllo di un gruppo, poiché i gruppi di pulsanti di opzione/caselle di controllo sono identificati da tutti con lo stesso nome. –

1

Sì! Questo è assolutamente bene.

id è l'identificatore lato client (per quando la ricerca di un elemento nel DOM)

nome viene utilizzato durante modulo di presentazione di POST/GET i valori.

Al di fuori di un elemento di ingresso non dovrebbe essere necessario utilizzare nome. Ma dare gli elementi di input a id consente loro di cercare nel DOM in modo coerente.

5

Non solo va bene, è abbastanza comune.

Gli ID sono utilizzati per Javascript (e in misura minore, per CSS).

I nomi vengono utilizzati per i campi modulo per specificare il nome per il valore inviato.

Tuttavia, le versioni precedenti di IE hanno noti bug, il che significa che siete quasi obbligati a specificarli entrambi in molti casi. (supponendo che tu voglia supportare quelle vecchie versioni di IE, ovviamente!)

L'unica cosa da tenere a mente è che gli ID devono essere unici. Pertanto, se si dispone di pulsanti di opzione che hanno tutti lo stesso nome, non è possibile utilizzare lo stesso ID per tutti. Nella maggior parte degli altri casi, tuttavia, è perfettamente corretto averli uguali.

1

Ho appena scoperto il HTML4 answer to my question:

Gli attributi id e name condividono lo stesso spazio nome. Ciò significa che non possono entrambi definire un'ancora con lo stesso nome nello stesso documento.È consentito utilizzare entrambi gli attributi per specificare l'identificatore univoco di un elemento per i seguenti elementi: A, APPLET, FORM, FRAME, IFRAME, IMG, and MAP. Quando entrambi gli attributi sono utilizzati su un singolo elemento, i loro valori devono essere identici.

Ora, suppongo che la regola applicata per applet e iframe dovrebbe, per estensione, lavoro per object e embed tag. In ogni caso, l'utilizzo di un nome identico & id non ha prodotto eventi insoliti fino ad oggi.