javascript - 使用 .val() 为表单赋值

标签 javascript jquery forms

在查看一些第 3 方代码时,我意识到他们正在使用 .val() 为表单赋值,然后提交表单。

$('#form-ID').val("Some Value");

这是一个有效的 jquery 语句,如果你这样做了

$('#form-ID').val()

您在控制台上得到 “Some Value”,但没有观察到 HTML 更改来反射(reflect)“Some Value”。因此,如果没有 HTML 更改,则:

  1. 为什么要给表单赋值?

  2. 如果需要,PHP 代码将如何读取该值?

最佳答案

代码有效是因为即使 HTMLFormElement实例未定义为具有 value 属性,val 不检查,它只是愉快地分配给它,创建一个 expando。这适用于任何元素:

var d = $("<div>");
d.val("foo");
console.log(d.val());    // "foo"
console.log(d[0].value); // "foo"

提交带有 value expando 的表单不会在提交时包含该值(您可以 try it here ),所以我希望代码是否这样做,它纯粹是这样做的出于客户端原因。或者,当然,这是他们从未发现和修复的错误。 (或者他们可能会猴子修补 val 并让它做一些特别的事情。)

关于javascript - 使用 .val() 为表单赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21874904/

相关文章:

javascript - jQuery every - 绑定(bind)到所有元素而不是单个元素

javascript - 简单的 HTML/CSS 下拉导航栏不显示

asp.net-mvc-3 - 动态显示选择列表下拉列表中选定的值

html - 发送带有特殊字符的 html 电子邮件时使用 htmlentities 是否更好?

javascript - IE11 Javascript on-change 事件不适用于 html 表单元素

c# - 从客户端调用 WCF 服务

javascript - Sequelize.js - 在不获取另一个对象的情况下在 save() 上添加关联

javascript - 将可拖动点绑定(bind)在一起

javascript - 无法从输入标记中选择文件数组值

json - 如何在 Laravel 4 中将 JSON 数据 POST 到远程服务器?