从表元素序列化而不是整个表单
尝试仅序列化特定表中的元素,但如果我执行整个Form
,它只返回结果
在下面的代码中,我想ajax只是tbl2中的元素
代码
var params = $("#tbl2").serialize(); var resp = $.ajax({ async: false, type: "POST", url: AppRoot + "webhandlers/postback.ashx", data: params });
首先,
不能有name
属性,即使可以, jQuery ID选择器 ( #
)也不匹配。
如果您使用id
(
),它将如下工作:
var params = $("#tbl2 :input").serialize();
:input
选择器选择所有表单元素(这里,在#tbl2
),这是必需的,因为serialize()
只适用于那些。
还请查看我的jsFiddle演示 。
您无法serialize
表 – 该方法不适用于那种DOM对象,只能对表单和表单字段进行序列化。
如果你真的想做你提出的建议,你需要正确的选择器来选择tbl2
的子元素,它们也是表单元素,然后你必须手动序列化每一个。 有人在另一个问题上做了这个:在没有表格的情况下序列化?
更好的方法可能是禁用所有不在您感兴趣的表中的表单元素 – 您需要一个选择器来选择不是tbl2
子元素的所有表单元素 – 然后序列化表单。 禁用的元素将被省略。
您可以使用serializeArray方法,该方法将为您提供输入字段数组,并可与数据一起使用。
var params = $("#tbl2 input").serializeArray();