У меня есть ввод HTML со ссылкой в значении.
<input type = 'text' value = 'http://www.link.com' id = 'link' />
Я использую jQuery для изменения значения определенного события.
$('#link').val('new value');
Приведенный выше код изменяет значение текстового поля, но не меняет значение в коде (value = 'http://www.link.com' остается без изменений). Мне также нужно изменить значение = ''.
javascript
jquery
Лукас
источник
источник
in the code
? Вы смотрите на исходный (т.е. немодифицированный) источник страницы?Ответы:
attr
Вместо этого используйте .$('#link').attr('value', 'new value');
демо
источник
setAttribute
или jQuery,attr
вы также повлияете на значение элемента DOM: jsfiddle.net/a8SxF/1.html()
, тогда будет все то же старое значение, не имеет значения, используете ли вы.val('new value')
илиattr('value', 'new value')
... :(Изменение свойства значения не меняет
defaultValue
. В коде (полученном с помощью.html()
илиinnerHTML
) атрибут value будет содержатьdefaultValue
свойство value, а не свойство value.источник
чтобы немного расширить ответ Рикардо: https://stackoverflow.com/a/11873775/7672426
http://api.jquery.com/val/#val2
о val ()
источник
Это всего лишь возможный сценарий, который случился со мной. Что ж, если это кому-то поможет, тогда отлично: я написал сложное приложение, в котором где-то в коде я использовал функцию для очистки всех значений текстовых полей перед их отображением. Некоторое время спустя я попытался установить значение текстового поля с помощью jquery val ('value'), но я не заметил, что сразу после этого я вызвал метод ClearAllInputs ... так что это тоже могло произойти.
источник
Объяснение: Attr будет работать с jQuery 1.6, но с jQuery 1.6.1 все изменилось. В большинстве случаев prop () делает то, что раньше делал attr (). Замена вызовов attr () на prop () в вашем коде обычно работает. Attr предоставит вам значение element, как оно было определено в html при загрузке страницы, а prop дает обновленные значения элементов, которые изменяются с помощью jQuery.
источник
Моя аналогичная проблема была вызвана наличием в селекторе специальных символов (например, точек).
Исправление заключалось в том, чтобы избежать специальных символов:
источник
источник
Для меня проблема заключалась в том, что изменить значение этого поля не удалось:
Ни одно из приведенных выше решений не помогло мне, поэтому я продолжил исследование и обнаружил:
Согласно спецификации события уровня 2 DOM: событие изменения происходит, когда элемент управления теряет фокус ввода и его значение было изменено с момента получения фокуса. Это означает, что событие изменения запускается при изменении при взаимодействии с пользователем. Программные изменения не вызывают запуск этого события.
Решением было добавить функцию триггера и заставить ее запускать событие изменения следующим образом:
источник
Дважды проверьте наличие более одного элемента с неуникальным идентификатором! Это была моя ситуация с циклом foreach и дублированием моих идентификаторов.
источник