Javascript/JQuery为传统的表单提交添加了Javascript对象



我在一个页面上有一个表单,大部分都是纯html。表单的一部分使用javascript生成一个相当复杂的多维对象。通常情况下,如果我有一个变量要放入POST请求中,我会在表单中附加一个<input type="hidden" />,但如果我尝试将对象序列化为json,json查询中会有很多逗号,这些逗号会破坏表单的html。

<input type="hidden" name="test" value="[{"fruit":"orange", "vege":"carrot"}, {"vehicle":"bike"}]"/>

不是有效的html。

我想有可能逃脱每个角色,并在服务器端进行条纹斜杠,尽管这看起来非常混乱。从视觉上看,没有理由将数据插入到html中。我更希望在提交表单之前使用javascript/jQuery将数据附加到POST中。

如果我使用ajax提交表单,这是微不足道的,但是由于各种原因,表单应该转发到处理页面。

最简单的方法是在value属性周围使用单引号,在JSON:中使用双引号

<input type="hidden" name="test" value='[{"fruit":"orange", "vege":"carrot"},     {"vehicle":"bike"}]' />

或者你可以做相反的事情:

<input type="hidden" name="test" value="[{'fruit':'orange', 'vege':'carrot'},     {'vehicle':'bike'}]" />

但是,如果在服务器端使用第二种方法,则必须将单引号替换为双引号,才能使其成为有效的JSON。

最新更新