Quelle est la différence entre readonly = “true” & readonly = “readonly”?

Quelle est la différence entre:

 

et:

  

Lorsque je readonly en readonly à true cela fonctionne un peu différemment de readonly='readonly' . La norme W3C indique que readonly devrait être 'readonly' et non 'true' . Pourquoi la plupart des navigateurs autorisent readonly='true' qui a des fonctionnalités quelque peu différentes de readonly='readonly' ?

Donner à un élément l’atsortingbut readonly donnera à cet élément le statut readonly. Peu importe la valeur que vous mettez après elle ou si vous mettez une valeur après elle, elle le verra toujours en lecture seule. Mettre readonly="false" ne fonctionnera pas.

Il est suggéré d’utiliser le standard W3C, qui est en readonly="readonly" .

Ceci est un paramètre de propriété plutôt qu’un atsortingbut valorisé

Ces parameters de propriété sont des valeurs par vue et ne nécessitent aucune affectation. Lorsqu’ils sont présents, un élément a cette propriété booléenne définie sur true , quand ils sont absents, ils sont false .

  

Ce sont en fait des navigateurs qui ont tendance à leur atsortingbuer une valeur. Si vous leur atsortingbuez une valeur, celle-ci sera simplement ignorée. Les navigateurs ne verront que la présence d’une propriété particulière et ignorent la valeur que vous essayez de leur atsortingbuer.

C’est bien sûr bien sûr, car certains frameworks n’ont pas la possibilité d’append de telles propriétés sans fournir leur valeur. Les helpers Asp.net MVC sont parmi eux. jQuery était le même jusqu’à la version 1.6 où ils ont ajouté le concept de propriétés.

Il existe bien sûr des implications liées à XHTML, car les atsortingbuts XML ont besoin de valeurs pour être bien formés. Mais c’est une autre histoire. Les navigateurs doivent donc ignorer les affectations de valeur.

En tous cas. Peu importe la valeur que vous leur atsortingbuez, à condition que le nom soit correctement orthographié afin qu’il soit détecté par les navigateurs. Mais pour plus de lisibilité et de maintenabilité, il est préférable de leur atsortingbuer des valeurs significatives comme:

 readonly="true" <-- arguably best human readable readonly="readonly" 

par opposition à

 readonly="johndoe" readonly="01/01/2000" 

Cela peut perturber les futurs développeurs en conservant votre code et peut interférer avec les spécifications futures qui peuvent définir des règles plus ssortingctes pour ces parameters de propriété.

readonly="true" est invalide HTML5 , readonly="readonly" est valide.

Spécification HTML5 :

http://www.w3.org/TR/html5/forms.html#attr-input-readonly :

L’atsortingbut readonly est un atsortingbut booléen

http://www.w3.org/TR/html5/infrastructure.html#boolean-atsortingbutes :

La présence d’un atsortingbut booléen sur un élément représente la valeur vraie et l’absence de l’atsortingbut représente la valeur fausse.

Si l’atsortingbut est présent, sa valeur doit être la chaîne vide ou une valeur qui est une correspondance ASCII insensible à la casse pour le nom canonique de l’atsortingbut, sans espace de début ou de fin.

Conclusion :

Les éléments suivants sont valides, équivalents et vrais :

     

Les éléments suivants ne sont pas valides :

     

L’absence de l’atsortingbut est la seule syntaxe valide pour false :

  

Recommandation

Si vous voulez écrire du XHTML valide, utilisez readonly="readonly" , car est invalide et d’autres alternatives sont moins lisibles. Sinon, utilisez simplement car il est plus court.

readonly="readonly" est la syntaxe xhtml . Dans xhtml, les atsortingbuts booléens sont écrits de cette façon. Dans xhtml ‘l’atsortingbut minimisation’ ( ) n’est pas autorisé, il s’agit donc d’un moyen valide d’inclure des atsortingbuts booléens dans xhtml. Voir cette page pour plus d’informations.

Si votre type de document est xhtml transitional ou ssortingct et que vous voulez le valider, utilisez readonly="readonly sinon readonly suffit.

Je ne sais pas comment ils sont fonctionnellement différents. Mon lot actuel de navigateurs OS X ne montre aucune différence.

Je suppose qu’ils sont tous fonctionnellement identiques en raison de la gestion des atsortingbuts HTML hérités. De retour dans la journée, tout atsortingbut indicateur (booléen) doit uniquement être présent, sans valeur, par exemple

   

Lorsque XHTML est arrivé, cette syntaxe n’était pas valide et les valeurs étaient requirejses. Alors que le W3 spécifiait le nom de l’atsortingbut comme valeur, je suppose que la plupart des fournisseurs de navigateurs ont décidé de vérifier l’existence d’un atsortingbut.

Selon les normes HTML, l’utilisation de

  

est suffisant pour rendre l’élément en lecture seule. Cependant, la norme XHTML indique que l’utilisation indiquée ci-dessus n’est pas valide en raison de la atsortingbute minimization . Vous pouvez vous référer aux liens ci-dessous:

https://www.w3.org/TR/xhtml1/diffs.html#h-4.5

http://www.w3schools.com/tags/att_input_readonly.asp