Ho letto un po 'su questo, ma non riesco a trovare nulla di solido su come i diversi browser trattano le cose. Sto costruendo un'app che deve essere conforme alla Sezione 508 (accessibile dallo screen reader) e tornare a IE 6.Qual è la differenza tra disabled = "disabled" e readonly = "readonly" per i campi di input del modulo HTML?
risposta
Un elemento readonly
non è modificabile, ma viene inviato quando il secondo form
invia. un elemento disabled
non è modificabile e non viene inviato su invio. Un'altra differenza è che gli elementi readonly
possono essere focalizzati (e focalizzati quando si "tabulazione" attraverso un modulo) mentre gli elementi disabled
non possono.
Per ulteriori informazioni, consultare this great article o the definition by w3c. Per citare la parte importante:
Le differenze principali
L'attributo disabili
- Valori per disabili elementi del modulo non sono passati al metodo del processore. Il W3C chiama questo elemento di successo (funziona in modo simile alle caselle di controllo del modulo non selezionate.)
- Alcuni browser possono eseguire l'override o fornire uno stile predefinito per gli elementi del modulo disabilitati. (Grigio fuori o rilievo del testo) Internet Explorer 5.5 è particolarmente antipatico a riguardo.
- Gli elementi del modulo disabilitati non ricevono lo stato attivo.
- Gli elementi del modulo disabilitati vengono saltati in navigazione con linguette.
l'attributo Sola lettura
- Non tutti gli elementi del modulo hanno un attributo di sola lettura. Degna di nota, le
<SELECT>
,<OPTION>
, e<BUTTON>
elementi non hanno attributi di sola lettura (anche se entrambi hanno la tua attributi disabili)- browser forniscono alcun valore predefinito sovrascritto feedback visivo che l'elemento del modulo è di sola lettura. (Questo può essere un problema ... vedi sotto).
- elementi modulo con il set di attributi di sola lettura avranno passato al processore modulo.
- Leggi solo gli elementi del modulo possono ricevere lo stato attivo
- Leggi solo gli elementi del modulo sono inclusi nella navigazione a schede.
sull'elemento readonly non è possibile utilizzare CTRL + C ma è possibile utilizzare il tasto destro del mouse e selezionare Copia. – Rumplin
@Rumplin ne sei sicuro? Ho appena testato e sono riuscito a copiare con la scorciatoia da tastiera in Chrome su OS X. – evanrmurphy
"Non tutti gli elementi del modulo hanno un attributo readonly.Degna di nota, gli elementi ,
disabili significa che nessun dato di elemento che forma verranno sottoposti quando il modulo viene inviato. Sola lettura significa che verranno inviati tutti i dati dall'elemento, ma non possono essere modificati dall'utente.
Ad esempio:
<input type="text" name="yourname" value="Bob" readonly="readonly" />
Questo presenterà il valore di "Bob" per l'elemento "tuonome".
<input type="text" name="yourname" value="Bob" disabled="disabled" />
Questo non invierà nulla per l'elemento "tuo nome".
Entrambi readonly' e 'disabled' sono valori booleani. Usa 'disabled' invece di' disabled = "disabled" '(stesso per readonly) – Raptor
Entrambi sono semanticamente corretti. HTML5 ti consente di usare entrambi. –
Sì, poiché controlla solo se l'attributo esiste o meno. Ma alcuni sviluppatori cercano di usare 'disabled =" no "', che non è valido. – Raptor
Uguale alle altre risposte (disabilitato non viene inviato al server, solo in lettura) ma alcuni browser impediscono l'evidenziazione di un modulo disabilitato, mentre la sola lettura può ancora essere evidenziata (e copiata).
http://www.w3schools.com/tags/att_input_disabled.asp
http://www.w3schools.com/tags/att_input_readonly.asp
Un campo di sola lettura non può essere modificato. Tuttavia, un utente può selezionarlo, evidenziarlo e copiarne il testo.
* sidenote: * Ti fidi di w3schools? oops. Leggi http://www.w3fools.com/ – Raptor
@Raptor w3schools non è più corrucciato. Da w3fools.com: _W3Schools ha ancora problemi, ma ha almeno lavorato sugli interessi principali degli sviluppatori. Per molti principianti, W3Schools ha tutorial strutturati e parchi giochi che offrono un'esperienza di apprendimento decente._ –
Nessun evento viene attivato quando l'elemento ha un attributo disabilitato.
Nessuno dei seguenti verrà attivato.
$("[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
Durante la lettura verrà attivato.
$("[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
Eccellente aggiunta! – Andy
Gli elementi con attributo Disattivato non vengono inviati o possono dire che i loro valori non verranno pubblicati con richiesta.
cioè
<input type="textbox" name="field" value="field" disabled="disabled" />
Differenza
- controlli disabili non ricevono attenzione.
- I controlli disabilitati vengono saltati in navigazione con linguette.
- I controlli disabilitati non possono essere inviati correttamente.
Utilizzare l'attributo readonly nel caso in cui si desidera pubblicare i dati del campo.
cioè
<input type="textbox" name="field" value="field" readonly="readonly" />
- sola lettura elementi ricevono lo stato attivo ma non possono essere modificati dall'utente.
- Gli elementi di sola lettura sono inclusi nella navigazione con linguette.
- Gli elementi di sola lettura vengono inviati correttamente.
- 1. Qual è la differenza tra prop ('disabled', 'disabled') e prop ('disabled', true)
- 2. C'è una differenza tra readonly e {get; }
- 3. javascript rimuovere l'attributo "disabled" per l'input HTML
- 4. Perché GetAttribute ("disabled") restituisce "true" not "disabled"?
- 5. MVC3 EditorPer readOnly
- 6. Repository Disabled
- 7. Qual è la differenza tra proprietà readonly e funzione in .net?
- 8. Qual è la differenza tra const, readonly e ottenere in una classe statica
- 9. Inizializza campi privati readonly dopo la deserializzazione
- 10. C# getter vs readonly
- 11. MVC 4 Annotazioni dati del rasoio ReadOnly
- 12. È necessario il modello ng quando si utilizza ng-disabled e $ invalid in un modulo?
- 13. readonly con jquery
- 14. C# privato, statico e readonly
- 15. Quando utilizzare Readonly e Ottieni solo proprietà
- 16. DatePicker Bootstrap con interfaccia utente angolare: supporto ng-readonly
- 17. qual è la differenza in `declare -r` e` readonly` in bash?
- 18. Rails che riutilizzano la vista modulo in modifica, ma l'impostazione di alcuni campi readonly
- 19. Angularjs - ng-disabled non funziona come previsto
- 20. Come posso abilitare la validazione jquery su campi readonly?
- 21. jQuery .prop ("disabled", false) non abilita un input
- 22. La direttiva AngularJS ng-disabled con espressione non funziona
- 23. Rasoio come creare un CheckBox e renderlo READONLY?
- 24. Utilizzare l'attributo readonly in <input> senza modificare il cursore
- 25. asp: TextBox ReadOnly = true o Enabled = false?
- 26. C# readonly contro Get
- 27. Aggiunta attributo readonly a tutti gli elementi del modulo
- 28. Qual è la differenza tra una chiusura e un modulo?
- 29. Come posso aggiungere e rimuovere l'attributo "readonly"?
- 30. qual è la differenza tra @ e @@ in un modulo?
Andy: si parla di textarea, ma non è possibile generalizzare la domanda a tutti i campi di immissione del modulo HTML? La (v buona) risposta di @oezi sembra farlo. Aggiornerò la tua domanda se per te va bene. –
correlati: "come emulare l'attributo readonly per un tag select e ottenere ancora i dati POST?" http://stackoverflow.com/questions/368813/html-form-readonly-select-tag-input –