在同一页面中处理多个表单

时间:2014-08-07 01:45:48

标签: javascript jquery forms

如果我在项目的某个页面中有这样的内容:

<div class="dialog" title="Basic dialog" id="popup">
    <div class="text"> </div>
</div>

<c:url value="/${entity}/cadastra" var="cadastra"/>
<form:form method="POST" action="${cadastra}" class="form" enctype="multipart/form-data">
...
    <button type="submit" class="btn btn-lg btn-primary">cadastrar</button>
</form:form>

并且提交事件由以下代码处理:

$('form.form').ajaxForm(function(data) {
    if(data == '')
        $('#yes').css('display', 'block');
    else
        $('#not').css('display', 'block');

    $('<<element>>').each(function(){
        this.reset();
    });
});

任何人都知道&lt;&gt;的价值应该是多少?如果我只想重置我提交的表单中的字段,我可以在div.dialog内有一个同一类的新表单?

如果我使用form.form,则会重置两个表单,如果我使用this,则会收到错误消息。有什么想法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:3)

每当您不确定对插件中元素的访问权限时,您始终可以在each循环内单独初始化它们。

each this内将是元素实例,您可以将其存储为变量以传入插件。

$('form.form').each(function () {
    /* assign "this" to variable that can be used inside plugin */
    var form = this;
    $(form).ajaxForm(function (data) {
        if (data == '') {
            $('#yes').css('display', 'block');
        } else {
            $('#not').css('display', 'block');
        }
        form.reset();
    });
});