我正在尝试对仅具有电子邮件的简单新闻稿表单进行一些基本验证。我在页面中使用此表单/输入的方式,实际上没有空间添加任何jQuery验证错误消息,因此我试图添加一个简单的HTML 5 required属性,但是无论是否为空白,表单都将提交。
为该表单添加一些简单验证的最佳方法是什么,以便该表单检查电子邮件地址,该地址是否已填写以及最小长度为4个字符?
<form action="" method="POST" id="newsletter-form">
<input type="email" id="footer-grid1-newsletter-input" placeholder="Your Email Address" required>
<input type="submit" id="footer-grid1-newsletter-submit" name="submit" value=' '>
</form>
$("#footer-grid1-newsletter-submit").on("click", function (event) {
event.preventDefault();
var newsletter_email = $("#footer-grid1-newsletter-input").val();
var targeted_popup_class = jQuery(this).attr('data-popup-open');
$.ajax({
url: "newsletterSend.php",
type: "POST",
data: {
"newsletter_email": newsletter_email
},
success: function (data) {
// console.log(data); // data object will return the response when status code is 200
if (data == "Error!") {
alert("Unable to insert email!");
alert(data);
} else {
$("#newsletter-form")[0].reset();
$('.newsletter-popup').fadeIn(350).delay(2000).fadeOut();
}
},
error: function (xhr, textStatus, errorThrown) {
alert(textStatus + " | " + errorThrown);
//console.log("error"); //otherwise error if status code is other than 200.
}
});
});
原因是因为验证是submit
在表单事件上完成的,但是您已经将事件与单击提交按钮挂钩。试试这个:
$("#newsletter-form").on("submit", function (event) {
event.preventDefault();
// your code...
});
关于验证最小输入长度,可以使用以下pattern
属性:
<input type="email" id="footer-grid1-newsletter-input" placeholder="Your Email Address" pattern=".{3,}" required>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句