在查看一些第 3 方代码时,我意识到他们正在使用 .val() 为表单赋值,然后提交表单。
$('#form-ID').val("Some Value");
这是一个有效的 jquery 语句,如果你这样做了
$('#form-ID').val()
您在控制台上得到 “Some Value”
,但没有观察到 HTML 更改来反射(reflect)“Some Value”。因此,如果没有 HTML 更改,则:
为什么要给表单赋值?
如果需要,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/