我想通过提交的正则表达式对电子邮件进行非常基本的jQuery验证。我的HTML:
<form action="POST" id="form">
<input type="email" id="customer_email" placeholder="email here" />
<input type="submit" />
</form>
JS:
$('#form').submit(function() {
var email_reg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
var emailinput = $('#customer_email').value();
if (email_reg.test(emailinput) == false) {
window.alert('no good');
}
});
据我所知,为了实现这个目的,我需要通过电子邮件输入获取输入的值(我在第4行上做)并在其上运行正则表达式。
单击提交时,表单上会显示标准输入错误,而不是窗口警报。请在此处查看Codepen概述: http://codepen.io/anon/pen/oYmJLW?editors=1010
答案 0 :(得分:2)
您需要添加event.preventDefault()
以阻止实际提交表单,并在输入中使用.val()
代替.value()
。
$('#form').submit(function(event) {
event.preventDefault();
var email_reg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
var emailinput = $('#customer_email').val();
if (email_reg.test(emailinput) == false) {
window.alert('no good');
}
});
通过将您的输入声明为type="email"
,您的浏览器将执行有效性检查(您不需要自己执行此操作),如果您想绕过使用type="text"
。