从表元素序列化而不是整个表单

Chr*_*ian 10 jquery serialization

尝试仅序列化特定表中的元素,但只有在我执行整个操作时才返回结果 Form

在下面的代码中,我想ajax只是tbl2中的元素

<form>
 <input type="text" id="tb1" name="tbl1"/>
  <table name="tbl1">
   <tr><td><input type="text" name="tb2"/></td></tr>
 </table>
 <table name="tbl2">
   <tr><td><input type="text" name="tb3"/></td></tr>
   <tr><td><input type="text" name="tb4"/></td></tr>
 </table>
</form>
Run Code Online (Sandbox Code Playgroud)

代码

var params = $("#tbl2").serialize();

var resp = $.ajax({
    async: false,
    type: "POST",
    url: AppRoot + "webhandlers/postback.ashx",
    data: params
});
Run Code Online (Sandbox Code Playgroud)

kap*_*apa 20

首先,a <table>不能拥有name属性,即使可以,jQuery ID selector(#)也不会匹配它.

如果你使用idinstead(<table id="tbl2">),它将像这样工作:

var params = $("#tbl2 :input").serialize();
Run Code Online (Sandbox Code Playgroud)

:input选择器选择所有的表单元素(在这里,里面#tbl2),这是必要的,因为serialize()只有在这些工作.

还请查看我的jsFiddle演示.