2010-02-28 22 views
3

Quelles sont les conditions requises pour l'échappement de caractères dans l'attribut de valeur de l'étiquette d'entrée dans le balisage HTML?Exigences d'échappement pour l'attribut de valeur de l'étiquette d'entrée

Est-ce que les doubles guillemets doivent être échappés? Des caractères spéciaux HTML aussi?

J'ai essayé de regarder à travers le W3C spec, mais je n'ai pas trouvé de détails spécifiques sur la façon dont les choses devraient être mises dans l'attribut value. Je suppose qu'il va sans dire que " devrait être échappé à ", mais qu'en est-il des autres? Les deux s'échapper et ne pas s'échapper semblent fonctionner très bien dans tous mes navigateurs, mais je ne veux pas choisir le non standard et se retrouver avec du code HTML ou & cassé.

Répondre

6

Les valeurs d'attribut ne doivent contenir que leurs guillemets.

Si l'attribut utilise des guillemets, remplacez les guillemets par ".

Si votre attribut est entre guillemets simples, évitez les guillemets simples dans la chaîne avec '. Note:ne pas utiliser '!

Ce sont tous valides HTML:

<input value=foo> 
<input value="foo"> 
<input value='foo'> 

Note: citations ne sont pas nécessaires pour être valide HTML. XHTML nécessite cependant des citations. Sans guillemets, vous ne pouvez pas avoir d'espaces dans la valeur de l'attribut.

+0

Cela fonctionne parfaitement. Merci! –

+1

Quelqu'un peut-il expliquer pourquoi vous ne pouvez pas utiliser '? – Myforwik

+0

@Myforwik autant que je me souvienne c'est parce que ''' n'est pas réellement la norme - ou plutôt, cela ne fonctionne pas dans certains IE (pas sûr de quoi). Cependant ''' est à la fois correct et fonctionne sur tout. – jammypeach