Javascript JQuery验证表单,但不是“提交”按钮
我使用验证表单中的某些字段,但我不想使用Javascript JQuery验证表单,但不是“提交”按钮,javascript,jquery,html,twitter-bootstrap,validation,Javascript,Jquery,Html,Twitter Bootstrap,Validation,我使用验证表单中的某些字段,但我不想使用提交按钮,我只想使用,一旦单击使用JQuery我想调用我的控制器,唯一的问题是它不是提交按钮,因此,即使字段错误或未验证,它也会调用控制器,即使字段值错误,因为我正在使用。单击该按钮时,JQuery的click()事件,我想知道,当我在字段上有错误的值,并且验证显示错误消息时,即使单击按钮,也不要调用我的操作控制器,我如何才能达到这一点? 这是我的html代码: <script src="~/js/jquery.validate.js"><
提交
按钮,我只想使用
,一旦单击使用JQuery
我想调用我的控制器,唯一的问题是它不是提交
按钮,因此,即使字段错误或未验证,它也会调用控制器,即使字段值错误,因为我正在使用。单击该按钮时,JQuery
的click()
事件,我想知道,当我在字段上有错误的值,并且验证显示错误消息时,即使单击按钮,也不要调用我的操作控制器,我如何才能达到这一点?
这是我的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>
$(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函数:
$(document).ready(function () {
$("#btnSubscription").click(function () {
SendSubscription();
}),
return false;
}),
function SendSubscription() {
$.ajax({
type: "post",
url: $("#btnSubscription").data("url"),
data: { fullName: $("#txtFullName").val(), emailAddress: $("#txtEmail").val() },
success: function () {
alert("email sent")
},
error: function () {
alert("An error occurred..")
}
});
}
您应该使用type
submit
,然后您可以使用submitHandler来管理您想做的其他事情,例如:
$("#formSubscription").validate({
submitHandler: function(form) {
// do other things for a valid form
form.submit();
}
});
在文档中获取战利品:在SendSubscription函数中添加一个if:
if (yourValidationDidntPass) {
//do whatever you want
}
else {
$.ajax({...});
}
设置
.validate()
后,只需在处理程序中调用.valid()
方法。单击()。这是submit自动执行的操作,但您可以使用.valid()
方法手动调用它 如果您不想使用submit按钮,则可以使用onfocusout事件调用该功能。将输入更改为type=“email”
只需在单击手柄中的表单上调用.valid()函数。下面是我如何构建一个更通用的示例:一个与您的代码无关的示例。。。此外,它不需要任何验证插件,因为提交事件只有在有效时才会发生