使用以下命令在Ajax加载之前验证电子邮件:jquery.validate.min.js

时间:2013-01-21 00:39:24

标签: jquery jquery-validate

我是jquery的新手。我一直在研究,并且在使用query.validate.min.js在ajax加载之前尝试验证电子邮件地址时遇到了麻烦。

我想验证表单,如果输入有效,则只调用app.ajax.load。无论我在ajax加载之前放置什么条件,表单仍然在没有验证的情况下发布也忽略了我的打回来。 (这是“谢谢”消息)

有人可以帮我解决这个问题,还是我需要写一个单独的函数来验证?

$('#emailsignup_form').validate({
rules: {
email: {
required: true;
email:true
}
},
messages: {
email: "Invalid Email",
},

submitHandler: function(form){
    app.ajax.load({
         reqName : 'emailSubmit',
         url: '$httpUrl('Bronto-OptIn')$?email=' + $('#email').val(), 
         selector : '#emailbox',
         callback: function(responseText, textStatus) { }
    });
            return false;
});

});


<form id="emailsignup_form" name="emailsignup_form" method="post" action="$httpUrl('Bronto-OptIn', 'fid', 'information')$">
<div class="fl"><input class="email-signup-input" type="text" title="Enter Your Email Address" value="Enter Your Email Address" name="email" id="email" /></div>
<div class="fl"><button class="email-signup-btn" value="Submit" name="submitemail" id="submitemail">Submit</button></div>
</form>

1 个答案:

答案 0 :(得分:2)

input name被称为"email"时,分配rule "email" email会很危险。从技术上讲它会起作用,但正如你在下面看到的那样,它可能会导致很大的混乱。示例:messages:中的input是否应分配给名为email的{​​{1}},还是rule的{​​{1}}?< / p>


您的emailrules ...

中存在一些语法错误
messages

应该是......

rules: {
email: { 
required: true; // <-- semicolon incorrect, must be a comma
email:true
}
},
messages: {
email: "Invalid Email", // <-- should define a message for each corresponding rule
},

您的 rules: { email: { // the field name required: true, email: true // the rule } }, messages: { email: { // the field name required: "this is required", email: "Invalid email" // the rule's message } }, 格式错误......

submitHandler:

应该更像这样(假设你的ajax功能是正确的)......

submitHandler: function (form) {
    app.ajax.load({
        reqName: 'emailSubmit',
        url: '$httpUrl('Bronto - OptIn')$?email=' + $('#email').val(),
        selector: '#emailbox',
        callback: function (responseText, textStatus) {}
    });
    return false; 
}); // <-- this is not correct

<强>演示:

http://jsfiddle.net/CagLw/