Credo che il titolo è abbastanzaQual è la differenza tra jQuery .val() e .attr ('valore')?
risposta
.val()
opere chiare su tutti gli elementi di tipo di ingresso in modo utile, tra cui <select>
... anche nei casi di <select multiple>
, caselle di controllo e pulsanti di opzione (in cui .val()
Ottiene o imposta un array di valori selezionati non solo una stringa).
Quindi in pratica servono a scopi diversi, anche se lo .attr('value')
si comporta allo stesso modo in alcune situazioni, come le caselle di testo. Il metodo preferito è .val()
per ottenere un comportamento coerente ovunque.
Solo per i calci, ecco un esempio meno noto per le caselle di controllo che fa .val()
a portata di mano:
<input name="mytest" type="checkbox" value="1">
<input name="mytest" type="checkbox" value="2">
<input name="mytest" type="checkbox" value="3">
<input name="mytest" type="checkbox" value="4">
Si può fare questo:
$("input[name='mytest']").val([1, 2, 3]);
.... che controllerà le prime 3 scatole. You can give it a try here.
Grazie per l'esempio meno noto. – ScottE
Ben scritto! Potresti voler aggiungere una breve espulsione sulla normalizzazione cross-browser che jQuery esegue con metodi come questo. – mekwall
Nota anche che '.attr ('valore')' legge il valore originale, non lo stato presente. [Vedi anche.] (Http://stackoverflow.com/questions/8312820/jquery-obj-val-vs-obj-attrvalue) – XML
Anche .attr ('valore') restituisce il valore che era prima della modifica del campo di input. And .val() restituisce il valore corrente.
Grazie. Ha senso. – Vikram
Per aggiungere alla risposta di Actis ...
anche .attr ('valore') restituisce il valore che è stato prima di modificare ingresso campo. And .val() restituisce il valore corrente.
Quando si lavora con un campo di immissione testo, i metodi di settaggio di .attr() e .val() funzionano in modo diverso.
.val('newval')
imposterà il valore visualizzato dall'utente sulla pagina e aggiornerà il valore restituito dalle chiamate di metodo successive .val(). Non imposterà il valore = attributo dell'elemento.
OTOH
.attr('value','newval')
fissa il valore = attributo dell'elemento. Se l'utente non ha digitato e non è stato chiamato .val (newval), allora anche questo aggiornerà visivamente il controllo e aggiornerà il valore restituito da .val().
È possibile approfondire con il seguente jsfiddle:
https://jsfiddle.net/jasonnet/vamLww2k/
Buona fortuna.
- 1. Qual è la differenza tra "const" e "val"?
- 2. JS .checked vs jquery attr ('checked'), qual è la differenza?
- 3. qual è la differenza tra angular.isUndefined (valore) e not! (Valore)?
- 4. Qual è la differenza tra (tipo) valore e tipo (valore)?
- 5. Differenza tra val.length e val(). Lunghezza in jQuery?
- 6. Qual è la differenza tra $ e $$?
- 7. Qual è la differenza tra "window.location.href" e "window.location.hash"?
- 8. Qual è la differenza tra "$ variabile" e "variabile" - JavaScript - jQuery
- 9. jQuery: Qual è la differenza tra "$ (questo)" e "questo"?
- 10. Qual è la differenza tra? Android: attr/textAppearanceMedium e? Android: textAppearanceMedium?
- 11. Qual è la differenza tra = e: =
- 12. Qual è la differenza tra Verilog! e ~?
- 13. Qual è la differenza tra? : e ||
- 14. qual è la differenza tra [[], []] e [[]] * 2
- 15. Qual è la differenza tra ("") e (null)
- 16. Qual è la differenza tra dict() e {}?
- 17. Qual è la differenza tra " " e ""?
- 18. Qual è la differenza tra {0} e ""?
- 19. Qual è la differenza tra `##` e `hashCode`?
- 20. Qual è la differenza tra {0} e +?
- 21. Qual è la differenza tra .ToString() e + ""
- 22. qual è la differenza tra:.! e: r !?
- 23. Qual è la differenza tra l'attributo svg x e dx?
- 24. Qual è la differenza tra queste funzioni?
- 25. Impostazione del valore del campo nascosto con Jquery $ ('# id'). Attr ("valore", 'val'); non funziona in IE
- 26. Objective-C: Qual è la differenza tra forKey e forKeyPath?
- 27. Qual è la differenza tra la [OptionalField] e [NonSerialized]
- 28. Differenza tra jquery e $
- 29. Qual è la differenza tra mixins statiche e tratto dinamica
- 30. Unix: Qual è la differenza tra la fonte e l'esportazione?
jQuery .val() vs .attr ("valore"): http://stackoverflow.com/questions/8312820/jquery-obj-val-vs-obj-attrvalue –