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”)。