jQuery .val变化不会改变input值
我有一个带有链接的HTMLinput值。
<input type = 'text' value = 'http://www.link.com' id = 'link' />
我正在使用jQuery来更改某个事件的值。
$('#link').val('new value');
上面的代码更改了文本框的值,但不会更改代码中的值(value ='http://www.link.com'保持不变)。 我需要值=''来改变。
使用attr
代替。
$('#link').attr('value', 'new value');
演示
更改value属性不会更改defaultValue
。 在代码中(用.html()
或innerHTML
检索),value属性将包含defaultValue
,而不是value属性。
<script src="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方法..所以,这也可能发生。
在里卡多的答案上扩展一下: https : //stackoverflow.com/a/11873775/7672426
http://api.jquery.com/val/#val2
关于val()
使用此方法设置值(或使用本地值属性)不会导致发生更改事件。 出于这个原因,相关的事件处理程序将不会被执行。 如果你想执行它们,你应该在设置值之后调用.trigger(“change”)。