Jquery serialize()方法不起作用

时间:2012-02-27 22:33:45

标签: jquery serialization

我有一个基本的html和javascript函数,如下所示。当我按表单ID序列化表单时,它可以工作。但是我想序列化一段html内容,而不是$('.FormReference').serialize()这样的形式。

我不能做什么?

    $(function () {

        $('#btnLogin').click(function (event) {

            alert($('#form1').serialize());
        });

    });


<form id="form1" runat="server" action="">
    <div>
        <table class="FormReference">
            <tr>
                <td>
                    <input type="text" id="_Username" name="Username" />
                </td>
                <td>
                    <input type="text" id="_Password" name="Password" />
                </td>
            </tr>
            <tr>
                <td colspan="2">
                    <input type="button" id="btnLogin" value="Login" />
                </td>
            </tr>
        </table>
    </div>
    </form>

1 个答案:

答案 0 :(得分:6)

来自the documentation

  

.serialize()方法可以对选择了单个表单元素的jQuery对象起作用,例如<input><textarea><select>。但是,通常更容易选择<form>标记本身进行序列化:

所以你有两个选择:

$('.FormReference').closest('form').serialize(); // serialize the whole form
$('.FormReference').find('input, select, textarea, button').serialize(); // serialize only elements contained within .FormReference
$('.FormReference').find(':input').serialize(); // shorter, but less efficient, alternative
相关问题