1

我有要序列化的表格,其中包含表格:

<form id="myForm" method="post">
    <table>
        <tr class="hide">
            <td><input /></td>
        </tr>
        <tr>
            <td><input /></td>
        </tr>
        ...
    </table>
</form>

我想使用 JQuery 序列化,但没有类元素中的表单<tr>元素hide。我试过这个:

$('#myForm').not('.hide').serialize()

但是选择器仅在表单元素中not查找。hide有没有办法检查选择器<tr>中类的父最近元素not

4

2 回答 2

3

要在序列化之前从表单中删除元素,首先克隆表单然后删除不需要的元素并序列化可能更容易:

var cloned_form = $('#myForm').clone(false);
    cloned_form.remove('.hide');

var serialized = cloned_form.serialize();

另一种方法是定位表单内的所有元素,并过滤掉元素内的任何.hide内容,如下所示:

$('*','#myForm').filter(function() {
    return !$(this).closest('.hide').length;
}).serialize();
于 2013-04-22T20:34:18.320 回答
1

我认为你可以这样做:

$("#myForm :input:not(.hide input)").serialize();
于 2013-04-22T20:36:28.973 回答