В чем разница между jQuery.вал и.буква attr('значение')?


Я думаю, что название это достаточно ясно

3 72

3 ответа:

.val() работает на всех элементах типа ввода полезным способом, в том числе <select>...даже в случаях <select multiple>, флажки и переключатели (в которых .val() получает или задает элемент массив из выбранных значений не только строка).

так что в основном они служат разным целям, хотя .attr('value') ведет себя так же, в некоторых ситуациях, таких как текстовые поля. Предпочтительный метод -.val() to получить последовательное поведение везде.


просто для удовольствия, вот менее известный пример для флажков, который делает .val() handy:

<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">

вы можете сделать это:

$("input[name='mytest']").val([1, 2, 3]);

....который будет проверять первые 3 коробки. вы можете попробовать здесь.

также .attr ('value') возвращает значение, которое было до редактирования поля ввода. И.функция val() возвращает текущее значение.

чтобы добавить к ответу actis...

также .attr ('value') возвращает значение, которое было перед редактированием ввода поле. И.функция val() возвращает текущее значение.

при работе с полем ввода текста, сеттер методы .attr () and .функция val() работают по-разному.

.val('newval')

установит значение, которое пользователь видит на странице, и обновит значение, возвращенное последующим .вызов метода val (). Он не устанавливает значение атрибута элемент.

OTOH

.attr('value','newval')

устанавливает значение атрибута элемента. Если пользователь не набрал и .val (newval) не был вызван, а затем это также визуально обновит элемент управления и обновит возвращаемое значение .вал.)(

вы можете исследовать дальше со следующим jsfiddle:

https://jsfiddle.net/jasonnet/vamLww2k/

удачи.