在浏览某些第三方代码时,我意识到他们正在使用.val()为表单分配值,然后提交表单。
$('#form-ID').val("Some Value");
这是一个有效的jquery语句,如果你这样做
$('#form-ID').val()
您在控制台上获得"Some Value"
但未观察到HTML更改以反映“某些值”。因此,如果没有HTML更改,那么:
为什么要为表单指定值?
如果需要,PHP代码将如何读取此值?
答案 0 :(得分:7)
代码有效,因为即使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),所以我希望代码是这样做的,它和&#d}纯粹出于客户方面的原因这样做。或者,当然,它是一个他们从未捕获并修复过的错误。 (或者他们可能会修补val
并使其做一些特别的事情。)