平台:ASP.NET 4.5,MVC 5,最新的jQuery,bootstrap和jQuery验证
我的问题是,一旦我验证了表单,我就想进行ajax调用,而不是关闭模式。
这是我的表格:
<form id="loginform" action="">
<div id="login-login">
<span>
<input type="email" name="login-email" id="login-email" placeholder="my@email.com" />
<input class="btn btn-success submit" type="submit" id="login-submit" value="Submit" />
</span>
</div>
</form>
我的jQuery在我的document.ready
中$("#login-form").popover(); // this is the overall modal id name
$("#loginform").validate({
rules: {
email: {
required: true,
email: true
},
submitHandler: function (form) {
console.log("submit on ok");
return false;
}
},
});
会发生什么:
当我输入无效的电子邮件时,我看到默认的jQuery验证火,并向我显示一条友好的消息。但是,当条目正确时,我没有看到console.log消息(我也使用了警报),模式只是关闭而我不想要它。不知道我还应该做什么?
任何帮助表示感谢。
答案 0 :(得分:3)
<input type="email" name="login-email" id="login-email" placeholder="my@email.com" />
jQuery Validation插件在您的情况下无法正常工作,因为......
当您定位name="login-email"
时,您的元素包含name="email"
。这必须与name
属性匹配。
rules: {
"login-email": { // <- this must match the 'name' of the field
required: true,
email: true
},
....
您错误地嵌套了submitHandler
选项中的rules
。这个回调是rules
的兄弟,而不是孩子。
rules: {
....
},
submitHandler: function (form) {
console.log("submit on ok"); // this now fires on a valid form submit
// ajax goes here
return false;
}