点击后提交表格

时间:2014-09-08 08:46:54

标签: php jquery

通过jQuery进行表单验证:

$("#Login").submit(function( event ) {
    var url = 'ajax/';
    var data = {};
    $("input").each(function() {
        data[$(this).attr('name')] = $(this).val(); 
    });
    $.post(url,data,function( resp ) {
        $("#formLoginErrorMessage").children().remove();
        if(resp === " ")
        {                
            console.log("Empty");
            return; // The form should submit
        } else if (typeof resp === "object") {
            console.log(resp);
        } else{
            $("#formLoginErrorMessage").addClass("alert-danger");
            $("#formLoginErrorMessage").append("<li>" + resp + "</li>");
            console.log(resp);
        }
    },'json');
    event.preventDefault();
});

此脚本正在检查一些错误,当 resp 为空时,表单应提交。但 返回,如果选中 resp ,则表示提交表单似乎不会。

2 个答案:

答案 0 :(得分:0)

您可以在if条件

中调用submit()方法
$("#Login").submit(function (event) {
    var form = this;
    var url = 'ajax/';
    var data = {};
    $('input').each(function () {
        data[$(this).attr('name')] = $(this).val();
    });
    $.post(url, data, function (resp) {
        $("#formLoginErrorMessage").children().remove();
        if (resp === " ") {
            form.submit();
            console.log("Empty");
            return; // The form should submit
        } else if (typeof resp === "object") {
            console.log(resp);
        } else {
            $("#formLoginErrorMessage").addClass("alert-danger");
            $("#formLoginErrorMessage").append("<li>" + resp + "</li>");
            console.log(resp);
        }
    }, 'json');
    event.preventDefault();
});

答案 1 :(得分:0)

你似乎对闭包感到困惑

$( "#Login" ).submit(function( event ) {

   // main submit handling function starts here

   ...

   $.post(url,data,function(resp){

       // inner response handling function starts here

        if(resp === " "){               
               console.log("Empty");
               return; //This returns to jQuery internals somewhere inside $.post
        } ...
    },'json');

    // stops form from submitting
    event.preventDefault();
});

我添加了一些评论,以帮助您更好地了解范围。

首先,您不应该依赖客户端验证。它可以毫无例外地被超越。如果由于某种原因你坚持这样做,你可以使用一些外部范围变量来确定验证是否已通过,但是你必须使用$form.submit()而不是return来实际提交表单