537 votes

Quelle est la différence entre disabled = "disabled" et readonly = "readonly" pour les champs de saisie de formulaire HTML?

J'ai lu un peu à ce sujet, mais je n'arrive pas à trouver quelque chose de solide sur la façon dont les différents navigateurs traitent les choses. Je construis une application qui doit être conforme à la Section 508 (accessible par un lecteur d'écran) et revenir à IE 6.

891voto

oezi Points 27038

un readonly élément est tout simplement pas modifiable, mais est envoyé lorsque la fonction form soumet. un disabled élément n'est pas modifiable et n'est pas envoyé sur soumettre. une autre différence est que l' readonly éléments peuvent être concentré (et d'être concentré lors de la "tabulation" par le biais d'un formulaire), tandis que disabled éléments ne peuvent pas.

lire plus à ce sujet dans cet article ou la définition par le w3c. pour citer, la partie importante:

Les Principales Différences

Les personnes Handicapées de l'attribut

  • Les valeurs pour les personnes handicapées des éléments de formulaire ne sont pas transmises au processeur de méthode. Le W3C appelle cela une réussite.(Cela fonctionne de la même pour forme de cases à cocher qui ne sont pas vérifiées.)
  • Certains navigateurs peuvent remplacer ou de fournir de style par défaut pour les personnes handicapées des éléments de formulaire. (Gris ou estampage texte) Internet Explorer 5.5 est particulièrement désagréable à ce sujet.
  • Personnes handicapées constituent des éléments à ne pas recevoir le focus.
  • Désactivé les éléments de formulaire sont ignorés dans la navigation de tabulations.

L'Attribut Lecture Seule

  • Pas tous les éléments de formulaire ont un attribut lecture seule. La plupart des notables, l' <SELECT> , <OPTION> , et <BUTTON> éléments ne sont pas en lecture seule attributs (bien que tes deux ont désactivé les attributs)
  • Les navigateurs offrent pas de valeur par défaut substituée retour visuel que l'élément de formulaire est en lecture seule. (Cela peut être un problème... voir ci-dessous).
  • Les éléments de formulaire avec l'attribut lecture seule jeu sera adopté à la forme du processeur.
  • Lire uniquement les éléments de formulaire peut recevoir le focus
  • Lire uniquement les éléments de formulaire sont inclus dans les onglets de navigation.

99voto

Hrishabh Gupta Points 320

Aucun événement n'est déclenché lorsque l'élément a un attribut désactivé.

Aucun des éléments ci-dessous ne sera déclenché.

 $("[disabled]").click( function(){ console.log("clicked") });//No Impact
$("[disabled]").hover( function(){ console.log("hovered") });//No Impact
$("[disabled]").dblclick( function(){ console.log("double clicked") });//No Impact
 

Pendant que readonly sera déclenché.

 $("[readonly]").click( function(){ console.log("clicked") });//log - clicked
$("[readonly]").hover( function(){ console.log("hovered") });//log - hovered
$("[readonly]").dblclick( function(){ console.log("double clicked") });//log - double clicked
 

44voto

Michael Irigoyen Points 11056

Désactivé signifie qu'aucune donnée de cet élément de formulaire ne sera soumise lors de la soumission du formulaire. Lecture seule signifie que toutes les données de l'élément seront envoyées, mais elles ne peuvent pas être modifiées par l'utilisateur.

Par exemple:

 <input type="text" name="yourname" value="Bob" readonly="readonly" />
 

Ceci soumettra la valeur "Bob" pour l'élément "yourname".

 <input type="text" name="yourname" value="Bob" disabled="disabled" />
 

Ceci ne soumettra rien pour l'élément "yourname".

5voto

Tim Gostony Points 7276

De même que les autres réponses (désactivé n'est pas envoyé au serveur, en lecture seule), mais certains navigateurs empêchent de mettre en évidence une forme désactivée, tout en lecture seule peuvent encore être mis en évidence (et copié).

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

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

Un champ en lecture seule ne peuvent pas être modifiés. Cependant, un utilisateur peut onglet, mettez-le en surbrillance et copier le texte à partir d'elle.

-8voto

Frank Olthuis Points 7

Un exemple sur jsfiddle: http://jsfiddle.net/ewa79/8/

     fake code block here to satisfy stackoverflow
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X