Javascript 使用.val()为表单赋值
在浏览一些第三方代码时,我意识到他们正在使用.val()为表单赋值,然后提交表单Javascript 使用.val()为表单赋值,javascript,jquery,forms,Javascript,Jquery,Forms,在浏览一些第三方代码时,我意识到他们正在使用.val()为表单赋值,然后提交表单 $('#form-ID').val("Some Value"); 这是一个有效的jquery语句,如果 $('#form-ID').val() 您可以在控制台上看到“Some Value”,但没有观察到反映“Some Value”的HTML更改。因此,如果没有HTML更改,则: 为什么要给表单赋值 如果需要,PHP代码将如何读取该值 代码之所以有效,是因为即使实例没有定义为具有value属性,val也没有检查,
$('#form-ID').val("Some Value");
这是一个有效的jquery语句,如果
$('#form-ID').val()
您可以在控制台上看到“Some Value”
,但没有观察到反映“Some Value”的HTML更改。因此,如果没有HTML更改,则:
代码之所以有效,是因为即使实例没有定义为具有
value
属性,val
也没有检查,它只是愉快地分配给它,创建一个expando。这适用于任何元素:
var d = $("<div>");
d.val("foo");
console.log(d.val()); // "foo"
console.log(d[0].value); // "foo"
vard=$(“”);
d、 val(“foo”);
console.log(d.val());//“福”
console.log(d[0].value);//“福”
提交带有值的表单
expando不会在提交时包含该值(您可以),因此我认为如果代码执行此操作,那么它执行此操作纯粹是出于客户端原因。或者,当然,这是一个他们从未捕获和修复的错误。(或者他们可能会使用猴子补丁val
,让它做一些特别的事情。)