Javascript 使用.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也没有检查,

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

$('#form-ID').val("Some Value");
这是一个有效的jquery语句,如果

$('#form-ID').val()
您可以在控制台上看到
“Some Value”
,但没有观察到反映“Some Value”的HTML更改。因此,如果没有HTML更改,则:

  • 为什么要给表单赋值

  • 如果需要,PHP代码将如何读取该值


  • 代码之所以有效,是因为即使实例没有定义为具有
    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
    ,让它做一些特别的事情。)