POST 每个隐藏输入字段的字符串化对象

POST stringified object per hidden input field

我想提交一些附加到输入元素的数据。服务器获取此元素,ID 正确,但没有值。

<form id="sub_form" method="post" action="acc_manage.lp"> 
    <input type="text" name="container" id="sub_inp" value=""> </input>
</form>

sub_inp 从特定事件接收输入,该事件调用:

function execute_submit(){
    $("#sub_inp").val(JSON.stringify(foo));
    // .val() returns a stringified object 
    console.log( $("#sub_inp").val() )
    if ($("#sub_inp").val() != "") {
        $("#sub_form").submit();
  };

服务器端 post 请求的值是这样的:

post={ container={} }, formdata={}, errtag={} }

为什么会这样,我该如何解决?我正在使用 jQuery 2.1.3

可能 issues/misunderstandings 关于您的表单是如何提交的,以及那里发生了什么。我无法确定,因为您的示例中缺少一些重要的代码...

如果您的表单具有 action 属性:

<form action="demo_form.asp">
   ...
</form>

On submit, send the form-data to a file named "demo_form.asp" (to process the input)

(w3schools: form_action)

如果您想 运行 javascript 代码提交使用 onsubmit 属性

<form onsubmit="myFunction()">
   ...
</form>

Execute a JavaScript when a form is submitted

(w3schools: onsubmit)

如果同时指定两者,您可能会在服务器端获得意外结果。

类似问题:HTML form action and onsubmit issues

编辑

根据您的评论,在澄清您的代码 javascript 代码是 运行ning 之后,我们必须假设行:

$("#sub_inp").val(JSON.stringify(foo));

弄乱了输入的 HTML 值,就像这个答案中提到的:store return json value in input hidden field