使用.val()为表单赋值

时间:2014-02-19 08:31:27

标签: javascript jquery forms

在浏览某些第三方代码时,我意识到他们正在使用.val()为表单分配值,然后提交表单。

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

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

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

您在控制台上获得"Some Value"但未观察到HTML更改以反映“某些值”。因此,如果没有HTML更改,那么:

  1. 为什么要为表单指定值?

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

1 个答案:

答案 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并使其做一些特别的事情。)