序列化不包含隐藏字段


69

我在窗体上运行序列化,该窗体上的字段被隐藏-这是一个非常重要的字段,应将其发布。有什么方法可以通过jQuery轻松序列化它,还是应该编写自己的函数?


4
serialize应该包括隐藏字段。我们可以看到标记和脚本吗?
VoteyDisciple

3
我能想到的唯一不应包括的字段是禁用字段。
Powerlord

2
序列化确实包含隐藏字段,但不包含禁用字段。想要查看标记和脚本的++。
2009年

6
name我猜您需要一个属性。
乔什·斯托多拉

我把所有事情都做对了,但仍然没用。然后,我进行了更深入的调查,发现它是第三方自动完成模块,但失败了。只是没有感觉到隐藏的领域。jQuery函数运行良好。非常感谢您的帮助。
gruszczy

Answers:


132

序列化 确实包括所有具有属性的已启用input元素。name


1
为什么jquery使用name属性来序列化表单,而不使用id属性?
frabiacca 2010年

16
@frabiacca因为该name属性是POST数据的标识符w3schools.com/tags/att_input_name.asp
Josh Stodola 2010年

我的复选框有样式/ css显示:无问题。他们没有被接。
Babak Bandpay

1
@Bandpay是的。您有其他问题。
乔什·斯托多拉

凉。容易忘记的事情!
马修·皮茨

2

也许将两者结合在一个选择器中会起作用吗?

$(":input,:hidden").serialize();

编辑:我只是尝试以上,它的工作。但是,$(“ form”)。serialize(); 应该像其他人一样自动接受所有输入。


1
仅当它具有最终成为对象键的name属性时,它才起作用。
Arnaldo Capo 2013年

1

自己就遇到了这个问题,并找到了解决方案。

问题与JQuery拾取隐藏的html信息的方式有关。它不会选择隐藏字段的TEXT作为其值,必须使用value =属性。

要在JQUERY中设置,请使用 $(field).val(yourvalue);


1

您需要设置名称属性并检查禁用属性!禁用字段也未序列化。



-4

我也有这个问题。出于习惯,我使用/>关闭了输入字段。我发现以这种方式关闭时隐藏的输入不起作用。

<input type="hidden" name="someName" value="someValue" /> 

不起作用。

<input type="hidden" name="someName" value="someValue" >

确实有效。


不正确 它与您所说的无关。
vohrahul
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.