2010-03-18 15 views
17

Ho un campo di input il cui nome è un esempio di stringa MD5:nome del campo di ingresso inizia con un numero

<input type="hidden" name="7815696ecbf1c96e6894b779456d330e" value="1">

ora ho capito che avere un numero come la prima lettera nel nome di un campo di input è in genere cattive pratiche, ma ci sono effetti collaterali a questo come un certo browser non lo invierà nella richiesta POST?

+0

Si dovrebbe anche essere consapevoli di come il proprio framework lato server (se si utilizza uno) gestisce gli input. –

risposta

18

Un attributo ID avrebbe dovuto iniziare con una lettera as per the HTML 4.01 W3C specification, tuttavia poiché l'attributo NAME degli elementi di input è di tipo CDATA (Source), questa restrizione non è applicabile.

Una vera restrizione che si ottiene sugli attributi NAME è quando si invia un modulo con il metodo GET, perché in questo caso i dati del modulo devono essere limitati ai codici ASCII (Source).

+1

L'attributo name è di tipo CDATA e non è un token del nome SGML per quanto posso dire. –

+0

@Willis: Hai ragione ... Ho corretto la mia risposta per renderla più accurata. –

6

Per quanto ne so, non dovresti avere problemi con nessun browser.
Ma si può sempre prendere in considerazione anteporre una sorta di corda, anche per comodità:

esempio,

<input type="hidden" name="h.7815696ecbf1c96e6894b779456d330e" value="1"> 

che può aiutare in qualche modo.

6

Le specifiche HTML non limitano in alcun modo il nome del controllo. In realtà si dice addirittura che il nome del controllo sia codificato in URL e che gli spazi e i caratteri non alfanumerici siano gestiti in un certo modo, quindi ovviamente i progettisti hanno anticipato nomi con un formato arbitrario.

+0

+1 per l'osservazione accurata. –

Problemi correlati