我只是在学习javascript和jquery,而且我必须做错了我的验证。我尝试了几种不同的方法,每次第一次警报(test1)都会触发onblur,但是错误的电子邮件不会显示第二次警报。我想过使用jquery验证插件,但是在玩了一段时间之后,我意识到我需要对每个空白onblur进行验证,而不是在处理表单的时候,所以我认为我遇到了正常的js。
在我的文档就绪功能中:
$("#studentEmail").blur(function() {
alert ("test1");
function validateEmail(studentEmail){
var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
if(!emailReg.test(studentEmail)) {
alert("Please enter valid email id");
}
}
});
在我的HTML中:
<input type="text" class="signUpTextbox" id="studentEmail" name="registerStudentEmail">
谢谢!
答案 0 :(得分:3)
你的模糊处理程序内部正在声明一个函数。声明此处理程序的外部函数,并在处理程序内部调用它。
function validateEmail(studentEmail){
var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
if(!emailReg.test(studentEmail)) {
alert("Please enter valid email id");
}
}
$("#studentEmail").blur(function() {
alert ("test1");
validateEmail($(this).val());
});
或者,如果此函数没有重用,您可以这样做:
$("#studentEmail").blur(function() {
alert ("test1");
var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
if(!emailReg.test($(this).val())) {
alert("Please enter valid email id");
}
});
答案 1 :(得分:3)
为什么你这里有内在功能?这应该工作
$("#studentEmail").blur(function() {
alert ("test1");
var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
if(!emailReg.test(studentEmail)) {
alert("Please enter valid email id");
}
});
答案 2 :(得分:0)
$("#studentEmail").blur(function() {
alert ("test1");
function validateEmail(studentEmail){
var emailReg = /^([\w-.]+@([\w-]+.)+[\w-]{2,4})?$/;
if(!emailReg.test(studentEmail)) {
alert("Please enter valid email id");
}
}
// call the validate method
validateEmail(this.value);
});