我使用JQuery.Validation plugin驗證表單中的一些字段,但我不希望使用submit
按鈕,我想用只是一個<input type="button">
和使用JQuery
一次點擊我想打電話給我的控制器,唯一不同的是它不是submit
按鈕,所以即使字段錯誤或未驗證,它也會調用控制器,即使字段值錯誤,因爲我正在使用.click()
事件JQuery
單擊該按鈕時,我想要在字段中出現錯誤值並且驗證顯示錯誤消息,即使單擊該按鈕也不會調用我的動作控制器,我該如何達到此目的? 這是我的html
代碼:jQuery驗證形式,但不是`submit`按鈕
<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"
}
}
});
});
這是jQuery函數,我有暫時扔在btnSubscription
是clicked
:
$(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..")
}
});
}
如果你不想使用提交按鈕,那麼你可以使用onfocusout事件調用功能。 – Nevermore
將你的輸入改爲'type =「email」' – Endless
@Endless你是對的,我正在測試,我忘了再次將它改爲電子郵件,它已完成:) – AlexGH