我使用JQuery.Validation plugin验证表单中的某些字段,但我不想使用submit
按钮,我只想使用{{1并且一旦使用<input type="button">
点击我想要调用我的控制器,唯一的问题是它不是JQuery
按钮,所以即使字段错误或未经过验证,它也会调用控制器,即使字段值是错误的,因为我在单击该按钮时使用submit
事件.click()
,我希望当我在字段上有错误的值并且验证是显示错误消息,即使单击该按钮也不会调用我的动作控制器,我该如何达到此目的?
这是我的JQuery
代码:
html
这是<script src="~/js/jquery.validate.js"></script>
<form action="post" class="rightform newsletter" id="formSubscription">
<div class="title">
<img src="http://ligresources.blob.core.windows.net/public/UK/Content/Images/newsletter.png" alt="">NEWSLETTER
</div>
<input type="text" id="txtFullName" name="fullName" placeholder="Full name" required>
<input type="email" id="txtEmail" name="email" placeholder="Email address" required>
<button type="button" id="btnSubscription" data-url="@Url.Action("SubscriptionEmail","Email")" style="background-color:#f66804;">SUBSCRIBE TO NEWSLETTER</button>
</form>
代码:
JQuery.Validation plugin
当$(document).ready(function () {
$("#formSubscription").validate({
rules: {
email: {
required:true,
email:true
},
fullName: {
required:true
}
},
messages: {
email: {
required: "Please enter an email address",
email: "Please enter a valid email address"
}
}
});
});
为btnSubscription
时,这是我暂时抛出的JQuery函数:
clicked
答案 0 :(得分:3)
设置.validate()
后,您需要调用.valid()
处理程序中的.click()
方法。这是提交自动执行的操作,但您可以使用.valid()
方法手动调用它。
答案 1 :(得分:1)
你应该使用类型submit
,然后你可以使用submitHandler来管理你想要做的其他事情,例如:
$("#formSubscription").validate({
submitHandler: function(form) {
// do other things for a valid form
form.submit();
}
});
在文档中获取战利品:https://jqueryvalidation.org/validate/
答案 2 :(得分:0)
在SendSubscription函数中添加一个if:
if (yourValidationDidntPass) {
//do whatever you want
}
else {
$.ajax({...});
}