如何从提交中了解表单

时间:2014-11-12 16:49:00

标签: jquery forms submit

我在页面中有多个表单,每个表单都有一个提交。但它不起作用,因为这给我两种形式。有人知道这样做吗?

由于

$(".submit").click(function() {
    processBeforeSend($(".submit").closest("form"));
});


 function processBeforeSend(form) {

form.each($('input'), function() {

    if ($(this).attr('class') == 'integer'){
        validateInteger(field);
    }
    else{
        if (filedClass == 'radio'){
            validateRadio(field);
        }
        else{

        }
    }
});

3 个答案:

答案 0 :(得分:1)

我没有使用submit按钮的点击事件,而是让submit按钮完成工作 - 触发表单的submit事件:

$("form").on( 'submit', processBeforeSend );


function processBeforeSend() {

    //'this' in here refers to the form whose submit event was triggered.
    $(this).find('input').each(function(i, field) {
        //'field' was not defined but in here it equals 'this' 
        //and refers to the current input element

        //An element can have more than one class so $(this).attr('class') is not the way to go.
        if( $(this).hasClass('integer') ){
            validateInteger(field);
        } else if( $(this).hasClass('radio') ) {
             validateRadio(field);
        } else {

        }
    });
}

答案 1 :(得分:1)

使用click代替submit意味着键盘提交将绕过您的代码!始终使用submit事件代替表单。如果您使用submit <{1}}事件this,那么<{1}}

此外,您的验证可能要求表格为&#34; not&#34;验证失败时提交。因此,如果任何验证失败,请将事件对象传递给您的验证并调用form

e.g。

e.preventDefault()

答案 2 :(得分:0)

您需要找到包含所点击的form元素的.submit,因为您可以使用this来引用点击处理程序中点击的.submit元素< / p>

$(".submit").click(function() {
    processBeforeSend($(this).closest("form"));
});