jquery - 为什么 jQuery val() 函数不更新属性 'value' ?

标签 jquery input attr

我在完成网站后遇到了这个问题,因为我必须在基于ajax的页面中实现历史记录(这需要使用html更新某些位置(其中包括带有简单文本输入的表单)-这就是问题所在 - 他们没有分配自己的值,因为他们的值是由 val() 设置的,而不是 attr() - 谎言))。我注定要替换所有 javascript 吗

$('#xxx').val('someValue');

$('#xxx').attr('value', 'someValue');

或者有希望绕过这个吗?

一个非常简单的例子 here 。正如您在对话框中看到的,属性 value 未在 html 代码中设置。

最佳答案

它使用底层的 native element.value = 'someValue',当然可以设置元素的属性

element.property_to_set = 'new_value';

所以它不会改变属性,那就是

element.setAttribute('value', 'someValue')

这是 attr() 内部执行的操作,而 prop() 会更改属性,就像 val() 一样。
它更改属性的原因是,属性是表单提交中使用的属性,并且通常也用于在 javascript 中获取值,因此坚持使用属性而不是属性是有意义的,因为该属性通常仅用于设置属性的初始值,稍后使用 javascript 更改该属性不会更新该属性,这将与您遇到的问题相反,并且会影响所有表单提交并成为一个主要问题。

关于jquery - 为什么 jQuery val() 函数不更新属性 'value' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20446948/

相关文章:

从 C 中的文件输入创建二维数组

android - 可绘制资源中的 ?attr 导致 Resources$NotFoundException

javascript - 在 jQuery 中使用 'data-attribute' 而不是 $.data 有什么优势?

javascript - 要更改的本地存储

radio-button - jQuery 单选按钮更改功能在应该时没有被触发

javascript - 将 jQuery 自动完成数据附加到 textarea 内容而不是覆盖它

input - 运动和 fswebcam 运行

Haskell 读取 Prec 有理函数

javascript - 关于JS代码执行的问题

c++ - 跳过规则中的强制性 boost::spirit::qi::attr(0)