Creo que el título es lo suficientemente¿Cuál es la diferencia entre jQuery .val() y .attr ('value')?
Respuesta
.val()
obras clara sobre todos los elementos del tipo de entrada en una forma útil, incluyendo <select>
... incluso en los casos de <select multiple>
, casillas de verificación y botones de radio (en el que .val()
Obtiene o establece una matriz de valores seleccionados, no solo una cadena).
Así que básicamente tienen propósitos diferentes, a pesar de que .attr('value')
se comporta igual en algunas situaciones, como cuadros de texto. El método preferido es .val()
para obtener un comportamiento consistente en todas partes.
Sólo por diversión, aquí hay un ejemplo menos conocido de casillas de verificación que hace .val()
útil:
<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">
usted puede hacer esto:
$("input[name='mytest']").val([1, 2, 3]);
.... que comprobará los primeros 3 cuadros. You can give it a try here.
Gracias por el ejemplo menos conocido. – ScottE
Bien escrito! Es posible que desee agregar una breve explicación sobre la normalización entre navegadores que jQuery hace con métodos como este. – mekwall
Tenga en cuenta también que '.attr ('value')' lee el valor original, no el estado actual. [Ver también.] (Http://stackoverflow.com/questions/8312820/jquery-obj-val-vs-obj-attrvalue) – XML
También .attr ('valor') devuelve el valor que estaba antes de editar el campo de entrada. Y .val() devuelve el valor actual.
Gracias. Tiene sentido. – Vikram
Para añadir a la respuesta de Actis ...
también .attr ('valor') devuelve el valor que estaba antes de editar entrada de campo . Y .val() devuelve el valor actual.
Al trabajar con un campo de entrada de texto, los métodos setter de .attr() y .val() funcionan de manera diferente.
.val('newval')
establecerá el valor que el usuario ve en la página y actualizará el valor devuelto por las siguientes llamadas al método .val(). No establecerá el valor = atributo del elemento.
Otoh
.attr('value','newval')
fijará el valor = atributo en el elemento. Si el usuario no ha escrito y no se ha llamado a .val (newval), al hacerlo también se actualizará visualmente el control y se actualizará el valor devuelto por .val().
Puede investigar más a fondo con la siguiente jsFiddle:
https://jsfiddle.net/jasonnet/vamLww2k/
Buena suerte.
- 1. jQuery .val() vs .attr ("valor")
- 2. Cuál es la diferencia entre $ y jQuery
- 3. Diferencia entre val() y texto()
- 4. Diferencia entre attr de jQuery() y getAttribute()
- 5. Cuál es la diferencia entre String (value) vs value.toString()
- 6. ¿Cuál es la diferencia entre jquery y jquery UI?
- 7. ¿Cuál es la diferencia entre "window.location.href" y "window.location.hash"?
- 8. ¿Cuál es la diferencia entre JSON y AJAX con jQuery?
- 9. ¿Cuál es la diferencia entre $ (esto) y esto en jQuery?
- 10. ¿Cuál es la diferencia entre $ .map y $ .grep en jQuery
- 11. Cuál es la diferencia entre jQuery .live() y .on()
- 12. ¿Cuál es la diferencia entre $ .add y $ .append JQuery
- 13. jQuery: ¿Cuál es la diferencia entre '$ (this)' y 'this'?
- 14. en jQuery ¿cuál es la diferencia entre $ .myFunction y $ .fn.myFunction?
- 15. ¿Cuál es la diferencia entre get() y eq() en jquery?
- 16. ¿Cuál es la diferencia entre AJAX con JavaScript y jQuery?
- 17. ¿Cuál es la diferencia entre $ each (selector) y .Cada $ (selector)()
- 18. ¿Cuál es la diferencia entre {0} y ""?
- 19. Cuál es la diferencia entre = y: =
- 20. ¿Cuál es la diferencia entre .ToString (+) y ""
- 21. Cuál es la diferencia entre $ (...) y `...`
- 22. ¿cuál es la diferencia entre:.! y: r !?
- 23. ¿Cuál es la diferencia entre ".equals" y "=="?
- 24. ¿Cuál es la diferencia entre dict() y {}?
- 25. ¿Cuál es la diferencia entre `##` y `hashCode`?
- 26. ¿Cuál es la diferencia entre "$^N" y "$ +"?
- 27. ¿Cuál es la diferencia entre [indefinido] y [,]?
- 28. ¿Cuál es la diferencia entre + = y = +?
- 29. ¿Cuál es la diferencia entre " " y ""?
- 30. ¿cuál es la diferencia entre ajax y jquery y cuál es mejor?
jQuery .val() vs .attr ("valor"): http://stackoverflow.com/questions/8312820/jquery-obj-val-vs-obj-attrvalue –