Ответ 1
Используйте attr
вместо. $('#link').attr('value', 'new value');
У меня есть ввод HTML со ссылкой в значении.
<input type = 'text' value = 'http://www.link.com' id = 'link' />
Я использую jQuery для изменения значения для определенного события.
$('#link').val('new value');
Приведенный выше код изменяет значение текстового поля, но не меняет значение в коде (value = 'http://www.link.com' остается неизменным). Мне также нужно изменить value = ''.
Используйте attr
вместо. $('#link').attr('value', 'new value');
Изменение значения свойства не меняет defaultValue
. В коде (полученном с помощью .html()
или innerHTML
) атрибут value будет содержать defaultValue
, а не свойство value.
<script src="//code.jquery.com/jquery.min.js"></script>
<script>
function changes() {
$('#link').val('new value');
}
</script>
<button onclick="changes()">a</button>
<input type='text' value='http://www.link.com' id='link'>
Это всего лишь возможный сценарий, который произошел со мной. Хорошо, если это помогает кому-то тогда здорово: я написал сложное приложение, которое где-то рядом с кодом я использовал функцию, чтобы очистить все значения текстовых полей перед их показом. Спустя некоторое время я попытался установить значение текстового поля с помощью jquery val ('value'), но я не заметил, что сразу после этого я вызвал метод ClearAllInputs.. так что это также может произойти.
чтобы развернуть бит на ответ Рикардо: fooobar.com/info/110207/...
http://api.jquery.com/val/#val2
о val()
Установка значений с использованием этого метода (или с использованием свойства native value) не вызывает отправку события изменения. По этой причине соответствующие обработчики событий не будут выполнены. Если вы хотите выполнить их, вы должны вызвать .trigger( "change" ) после установки значения.