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

时间:2015-08-05 09:00:47

标签: javascript jquery html http submit

我想提交一些附加到输入元素的数据。服务器使用正确的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

1 个答案:

答案 0 :(得分:1)

关于如何提交表单以及发生了什么,可能存在一些问题/误解。我无法确定,因为你的例子中缺少一些重要的代码......

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

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

在提交时,将表单数据发送到名为&#34; demo_form.asp&#34;的文件中。 (至   处理输入)

w3schools: form_action

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

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

提交表单时执行JavaScript

w3schools: onsubmit

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

类似问题:HTML form action and onsubmit issues

修改

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

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

正在弄乱输入的HTML值,如本答案中所述:store return json value in input hidden field