如何使用jQuery在所有表单上运行序列化?

时间:2013-10-01 01:40:04

标签: jquery html forms

我尝试编写一个在页面中所有表单上发生的函数:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script>
    $('form').click(function() {
        alert (this.serialize());
        return false;
    });
</script>

但我收到了错误

  

this.serialize不是函数

我做错了什么?

更新

$(this)工作

所以现在我尝试了:

$('form').click(function() {
    alert ($(this).serialize());
    $("input, select, textarea").attr("disabled", true);
    alert ($(this).serialize());
    return false;
});

但是这会禁用页面上所有表单中的所有元素。

如何在按下提交按钮的表单中禁用那些?

3 个答案:

答案 0 :(得分:1)

尝试

$(this).serialize();

而不是

this.serialize();

要禁用 此表单的字段

$('form').click(function () {

    // ...

    $(this).find('input, select, textarea').each(function () {
        $(this).prop('disabled', true);
    });

    // ...

});

答案 1 :(得分:0)

您需要使用jQuery对象:$(this).serialize()

答案 2 :(得分:0)

我正在回答关于残疾人的第二个问题。

如果你想要,你可以这样做:

$('#saveButtonForm3').click(function() {
    alert ($(this).parent().serialize());  // parent() is the form, $(this) is the button
    // this line will disable the fields in the form where the save button is clicked
    $(this).parent().find("input, select, textarea").attr("disabled", true);
    alert ($(this).parent().serialize());
    return false;
});