初学者javascript onblur验证未验证

时间:2011-12-15 15:10:06

标签: javascript jquery validation onblur

我只是在学习javascript和jquery,而且我必须做错了我的验证。我尝试了几种不同的方法,每次第一次警报(test1)都会触发onb​​lur,但是错误的电子邮件不会显示第二次警报。我想过使用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">

谢谢!

3 个答案:

答案 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);
});