我想提交一些附加到输入元素的数据。服务器使用正确的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
答案 0 :(得分:1)
关于如何提交表单以及发生了什么,可能存在一些问题/误解。我无法确定,因为你的例子中缺少一些重要的代码......
如果您的表单具有action
属性:
<form action="demo_form.asp">
...
</form>
在提交时,将表单数据发送到名为&#34; demo_form.asp&#34;的文件中。 (至 处理输入)
如果您想在提交时运行javascript代码,请使用onsubmit
属性
<form onsubmit="myFunction()">
...
</form>
提交表单时执行JavaScript
如果同时指定两者,则可能会在服务器端获得意外结果。
类似问题:HTML form action and onsubmit issues
修改强>
根据您的评论,在澄清您的代码javascript代码正在运行后,我们必须假设该行:
$("#sub_inp").val(JSON.stringify(foo));
正在弄乱输入的HTML值,如本答案中所述:store return json value in input hidden field