使用链接触发时,jQuery验证引擎不工作

使用链接触发时,jQuery验证引擎不工作,jquery,triggers,click,submit,jquery-validation-engine,Jquery,Triggers,Click,Submit,Jquery Validation Engine,当我通过链接(调用submitlogin())提交表单时,它会返回一个AJAX错误,但是如果我在submitlogin()之后放置alert('hello'),它会工作。当我以这种方式触发提交时,AJAX似乎被调用了两次。有人能解释一下如何正确使用AJAX表单的链接表单提交吗 我的表格: <form id="loginForm" name='loginForm' class=" clean" action="{$base_url}/login" method="post">

当我通过链接(调用
submitlogin()
)提交表单时,它会返回一个AJAX错误,但是如果我在
submitlogin()
之后放置
alert('hello')
,它会工作。当我以这种方式触发提交时,AJAX似乎被调用了两次。有人能解释一下如何正确使用AJAX表单的链接表单提交吗

我的表格:

<form id="loginForm" name='loginForm' class=" clean" action="{$base_url}/login" method="post">
    <input  type="text" name="Username" id="Username" class=" field"  value="" size="23" />
    <input  type="password" name="Password" id="Password" class="field"  size="23" />
    <input type="submit" name="submit" id="loginsubmit"  class="button icon-signin" value="Login" style="float:left;" />
    <a href=""  onclick="submitlogin();"  >Login</a>
</form>
$('#loginForm').validationEngine({ajaxFormValidation: true,
    ajaxFormValidationURL :BASE_URL+"login/submit/",
    onAjaxFormComplete: function(status, form, json, options)
    {
        if(status && json.false==null) // no error messages
        {
            window.location=BASE_URL;
        }
    },
    onBeforeAjaxFormValidation: beforeCall
});
当我手动单击submit
按钮时,上面的工作正常。但是当我点击
链接时,它失败了。我尝试了不同版本的
submitlogin()
,都失败了

// 1
function submitlogin()
{
    $('#loginForm').validationEngine('triggersubmit');
    return false;
}    

// 2
function submitlogin()
{
    $('#loginForm').submit();
}       

// 3
function submitlogin()
{
    $('#loginForm').trigger('submit');
}

我想你可以试一下:

$("#login_link").click(function() {

    $('#loginForm').validationEngine({ajaxFormValidation: true,
        ajaxFormValidationURL :BASE_URL+"login/submit/",
        onAjaxFormComplete: function(status, form, json, options)
        {
            if(status && json.false==null) // no error messages
            {
                window.location=BASE_URL;
            }
        },
        onBeforeAjaxFormValidation: beforeCall
    });

});
其中
#login_link
是您的链接:

<form id="loginForm" name='loginForm' class=" clean" action="{$base_url}/login" method="post">
    <input  type="text" name="Username" id="Username" class=" field"  value="" size="23" />
    <input  type="password" name="Password" id="Password" class="field"  size="23" />
    <input type="submit" name="submit" id="loginsubmit"  class="button icon-signin" value="Login" style="float:left;" />

    <!-- YOUR LINK "#login_link" -->
    <a href="" id="login_link" >Login</a>

</form>


希望这对你有用。让我知道你的成绩,伙计。

那不行。我以前试过。它基本上是重新启动的。它抛出了ajax错误,我无法阻止它。似乎有两个调用要转到服务器,但我找不到如何进行。因为当我提交它时,验证表单并抛出错误。如果我在submit方法中放入警报…它将处理错误,并立即切换到我的主页。我的问题是,还有一个来自提交跳过验证的ajax调用,它不发送数据,基本上失败了。我想看到任何人成功地使用了submit.FIXED链接。错误在HTML中。href=“”基本上是双重提交。替换为href=“javascript:void(0);”。工作正常。