Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 每个隐藏输入字段后字符串化对象_Javascript_Jquery_Html_Http_Submit - Fatal编程技术网

Javascript 每个隐藏输入字段后字符串化对象

Javascript 每个隐藏输入字段后字符串化对象,javascript,jquery,html,http,submit,Javascript,Jquery,Html,Http,Submit,我想提交一些附加到输入元素的数据。服务器get的this元素具有正确的ID,但它没有值 <form id="sub_form" method="post" action="acc_manage.lp"> <input type="text" name="container" id="sub_inp" value=""> </input> </form> 服务器端post请求的值如下: post={container={}},formda

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

<form id="sub_form" method="post" action="acc_manage.lp"> 
    <input type="text" name="container" id="sub_inp" value=""> </input>
</form>
服务器端post请求的值如下:

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


这是为什么?我如何修复它?我使用的是jQuery 2.1.3

对于表单的提交方式以及发生的情况,可能存在一些问题/误解。我不能确定,因为您的示例中缺少一些重要的代码

如果表单具有
操作
属性:

<form action="demo_form.asp">
   ...
</form>
提交表单时执行JavaScript

()

如果同时指定这两个选项,可能会在服务器端得到意外的结果

类似问题:

编辑

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

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

正在弄乱输入的HTML值,如回答中所述:

一个JS对象,比如说{a:“b”,c:“d”}alert(foo)打印[object][object],但是alert(JSON.stringify(foo))打印我所期望的内容。在本例中,“{a:'b',c:'d'}”。接收响应的服务器端代码在哪里?还请注意,
input
元素不需要
标记。我自己还没有编写服务器端,但它是基于此:但是您实际使用的代码是什么?如果不了解原因,我们就无法诊断问题。我给sub_inp指定了默认值“test”,以检查是否存在您提到的问题。但问题依然存在。接收到的值不是{“test”},只是{}。所以在提交之前,值被修改了。我明白了。再看看这一点:是否
JSON.stringify(foo)
会弄乱HTML值数据。如果您同时指定这两个值,您的javascript在提交之前不会运行-False。提交事件处理程序是在表单提交之前启动的。简单地说,DDan。根据服务器端对数据的处理方式,替换(/“/g,“|”)(|或对象中不能出现的任何其他数字)应该是一个更简单的解决方案。在我的情况下,JSON对象将被解析为lua表。因此,替换更简单。
<form onsubmit="myFunction()">
   ...
</form>
$("#sub_inp").val(JSON.stringify(foo));