jQuery .val() 与 .attr ("value")

标签 jquery forms

我以为这两个是一样的,但他们似乎不是。我通常一直在使用 $obj.attr("value") 来处理表单字段,但在我当前正在构建的页面上,$obj.attr("value") 不返回我在字段中输入的文本。但是,$obj.val() 可以。

在我构建的另一个页面上,$obj.attr("value")$obj.val() 都返回在表单中输入的文本 field 。

什么可以解释 $obj.attr("value") 在一种情况下按预期工作但在另一种情况下却没有?

使用 jQuery 设置和检索表单字段值的正确方法是什么?

最佳答案

对象属性和对象属性之间有一个很大的区别

请参阅此问题(及其答案)了解一些差异:.prop() vs .attr()

要点是 .attr(...) 仅在开始时(创建 html 时)获取对象值。 val() 正在获取对象的 property 值,该值可以多次更改。

关于jQuery .val() 与 .attr ("value"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8312820/

相关文章:

PHP 表单不工作。在 IE/FF 中显示正常,而不是在 chrome 中。

javascript - ANGULAR - 如果表单值未更改,则禁用提交按钮

php - 使用 Phonegap 应用程序执行 ajax 请求时出现问题

javascript - 在 JSON 成功后重定向到其他地方?

javascript - 在选中复选框之前如何禁用按钮?

javascript - 如何更改 Off-Canvas 菜单效果中的动画位置

javascript - 使用 php 创建带有数字/电子签名的 HTML 表单

javascript - 无法使用 twitter bootstrap 将焦点集中在 jQuery UI 模式内的文本框中

javascript - 难以在正确位置动态插入复选框

javascript - 使用 ng-repeat 检测元素的 outerHeight()