Javascript错误似乎只在IE8中出现

时间:2012-01-31 15:32:47

标签: javascript internet-explorer-8

以下代码不断在IE8中抛出错误(仅限)

尽管警报中填写了所有字段,但总是会出现。这是一个已知的问题吗?

if(errors == 0) {
            return true;
        } else {
            alert("Please complete all (*) marked fields");
            return false;
        }

完整代码:

$(function(){
    $("#d2b").click(function(){

        $("#first_name").val($("#bill_fname").val());
        $("#last_name").val($("#bill_lname").val());
        $("#del_address_1").val($("#bill_address_1").val());
        $("#del_address_2").val($("#bill_address_2").val());
        $("#del_city").val($("#bill_city").val());
        $("#del_county").val($("#bill_county").val());
        $("#del_postcode").val($("#bill_postcode").val());

        return false;
    });

    $("#gpn").submit(function(){

        errors = 0;

        $("#gpn input[type='text']").each(function(){
            var nm = $(this).attr('name');

            if(nm == 'bill_address_2' || nm == 'del_address_2' || nm == 'groupon_barcode') {
                ;
            } else {

                if($(this).attr('name') == 'code') {
                    var gpncode = $(this).val();

                    if(gpncode.length != 10) {
                        errors++;
                        alert("Uh Oh");
                        return;
                    }

                    var str = gpncode;

                    var patt=/[0-9A-Za-z]{10}/g;

                    var result=patt.test(str);

                    if(!result) {
                        errors++;
                        alert("this should be longer");
                    }

                    return;
                }

                if($(this).val() == '') {
                    errors++;
                }
            }

        });

        if(errors == 0) {
            return true;
        } else {
            alert("Please complete all (*) marked fields");
            return false;
        }
    });
});

1 个答案:

答案 0 :(得分:1)

代码未显示实际在任何地方声明的errors。要么您没有发布完整代码,要么尝试使用隐式声明。建议不要使用后者,尝试将错误变量声明为:

var errors = 0;