Jquery - 按类别在DIV中序列化表单字段?

时间:2016-09-15 12:01:18

标签: javascript jquery html ajax serialization

是否可以通过使用分配给两个div的类来获取表单字段数据并将其序列化?

我有4个包含表单字段的div,一次只显示两个DIV。显示的内容取决于下拉选择。

  • 如果select = 1,则显示类classOne的div,隐藏classTwo的div

  • 如果select = 2,则显示类classTwo的div,隐藏classOne的div

当我提交表单时,我想要使用classOneclassTwo序列化两个div,具体取决于下拉列表中选择的内容。

到目前为止,我无法通过div来序列化表单日期..

data: $('.classOne').serializeArray(),

这不会将任何数据传递给我的后端脚本。

2 个答案:

答案 0 :(得分:6)

您需要定位这些元素中的表单控件。您可以使用伪选择器:input来涵盖各种控件标签和类型

data: $('.classOne :input').serializeArray()

DEMO

另一种常见的方法是使用<fieldset>标记并禁用非活动标记。禁用字段集会禁用其中的任何表单控件,以便您可以在整个表单上有效使用serialize(),因为它不包含已禁用的控件

答案 1 :(得分:1)

serializeArray()返回所有已启用的输入字段数据。您需要禁用您不希望serializeArray()返回的输入字段。

选择下拉列表时,请将attributeinput字段设置为disabled

禁用输入字段:

$(input).attr('disabled','disabled');

如果select = 1,则div为class&class; classOne&#39;显示和divs与'classTwo&#39;被隐藏并disabled

如果select = 2,则div为class&class; classTwo&#39;是表示和divs与'classOne&#39;被隐藏并disabled