for循环后的函数代码不会被执行

时间:2011-11-16 17:46:39

标签: javascript jquery validation

我正在尝试使用javascript创建注册表单并验证输入字段,但是在for循环执行后我遇到了困难......

function checkValidation1() {

    var elem = document.getElementsByTagName("input"); 

    for(var i = 0; i < elem.length; i++) {

        if($("#"+elem[i].id).val()=="") {
            $("#"+elem[i].id+"error").html("<img src='images/exclamationsmall.png' title='"+elem[i].name+" should not be blank'>");               

        } else if(elem[i].name=="email") {
            var emailReg = /^([_a-zA-Z0-9-]+)(\.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,3})$/;

            if(!emailReg.test($("#"+elem[i].id).val())) {                        
                $("#"+elem[i].id+"error").html("<img src='images/exclamationsmall.png' title='"+elem[i].name+" is invalid'>");
            }
        } else {
            $("#"+elem[i].id+"error").html("");
        }
    } 
    alert("fasfasfasfasfasf");
}

alert由于某种原因未执行。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

确认您的所有input元素实际上都具有id属性。否则这一行:

if ($("#" + elem[i].id).val() == "") {

...将导致只包含octothorpe的表达式 - $("#") - 并出现以下错误:

  

语法错误,无法识别的表达式:#

...最终阻止代码到达alert