我正在尝试验证表单时遇到问题。我正在尝试确保电子邮件输入的电子邮件格式正确,如果不是,我将能够向用户发送错误消息。不幸的是,我无法得到假的回报;执行。
这是我目前的代码:
function validate(){
var email = $('input.email').value;
var emailRE = /^.*@.+\..{2,5}$/;
if (email.match(emailRE)){
alert("This is true");
} else {
alert("This isn't true.");
}
return false;
}
当我执行此操作时,页面重新加载并且表单提交,并且两个警报都没有响起。但是,当我取出整个if,else部分时,返回false;执行,页面不重新加载。我也尝试取出'.match()',代码执行得很好。那么导致它失败的.match()部分出了什么问题呢?
非常感谢任何帮助。谢谢!
答案 0 :(得分:4)
您必须使用$('input.email').val()
代替$('input.email').value
value
用于DOM对象。但是你正在处理的对象是一个jQuery对象,所以正确的方法是使用val()
。如果您使用value
在Firefox / Firebug中运行它,它将显示错误:
email is undefined
[Break On This Error] if (email.match(emailRE)){