Bhu*_*hal 3 javascript forms jquery
在浏览一些第三方代码时,我意识到他们使用.val()为表单赋值,然后提交表单.
$('#form-ID').val("Some Value");
Run Code Online (Sandbox Code Playgroud)
这是一个有效的jquery语句,如果你这样做
$('#form-ID').val()
Run Code Online (Sandbox Code Playgroud)
你进入"Some Value"控制台,但没有观察到HTML变化反映"一些价值".因此,如果没有HTML更改,那么:
为什么要为表单赋值?
如果需要,PHP代码将如何读取此值?
代码可以工作,因为即使HTMLFormElement实例没有被定义为具有value属性,val也没有检查,它只是愉快地分配给它,创建一个expando.这适用于任何元素:
var d = $("<div>");
d.val("foo");
console.log(d.val()); // "foo"
console.log(d[0].value); // "foo"
Run Code Online (Sandbox Code Playgroud)
提交带有valueexpando 的表单不会在提交时包含该值(您可以在此处尝试),因此我希望如果代码正在执行此操作,那么这纯粹是出于客户端原因.或者,当然,这是一个他们从未捕获并修复的错误.(或者他们可能会修补val它并使它做一些特殊的事情.)