JavaScript不允许加载页面

时间:2011-10-24 09:09:04

标签: javascript visual-studio

我对这段代码有点问题,因为我对JavaScript不是很了解。出于某种原因,我已经搞乱了语法,因为我使用的是Visual Studio 2010,所以没有办法调试JavaScript。我不确定我做错了什么,但当我尝试在浏览器中启动这段代码时,它似乎只是继续加载,并没有真正完成。我想知道我的表情是否有问题,但无论哪种方式,我已经在这方面工作了好几天,它开始让我感到沮丧。

任何答案都将受到高度赞赏。

var addAbsence = {
holDayCount: 0,

init: function () {
    var deferrend = $.Deferred();

    $("#addAbsence select[name=type]").change(function () {
        switch ($(this).val()) {
            case "0": case "1":
                $("#addAbsence .borderWrap.type").animate({ "width": 266 }, 300, "swing", function () {
                    $("#addAbsence .borderWrap.tInfo").show();
                });
                $("#addAbsence .halfDays").show();
                $("#addAbsence .lateArrivalTime").hide();
                $("#addAbsence .paidHolidayCount").show();
                break;
            case "2":
                $("#addAbsence .borderWrap.type").animate({ "width": 266 }, 300, "swing", function () {
                    $("#addAbsence .borderWrap.tInfo").show();
                });
                $("#addAbsence .halfDays").hide();
                $("#addAbsence .paidHolidayCount").hide();
                $("#addAbsence .lateArrivalTime").show();
                break;
            default:
                $("#addAbsence .borderWrap.tInfo").hide();
                $("#addAbsence .halfDays").hide();
                $("#addAbsence .borderWrap.type").animate({ "width": 554 }, 300, "swing");
        }
    });

    $("#addAbsence input.date").datepicker({
        "dateFormat": "DD, d MM, yy",
        onSelect: function () {
            var dateFrom = Date.parse($("#addAbsence input[name=dateFrom]").val());
            var dateTo = Date.parse($("#addAbsence input[name=dateTo]").val());

            if (!isNaN(dateFrom) && !isNaN(dateTo)) {
                var dates = addAbsence.getStartEndDate();

                if ((dateFrom <= dateTo) &&
                    (dateFrom >= dates.dateFrom && dates.dateFrom <= dateTo) &&
                    (dateFrom <= dates.dateTo && dates.dateTo >= dateTo)) {

                    $("#addAbsence input[name=dateFrom], #addAbsence input[name=dateTo]").removeClass("error");

                    if ($("#addAbsence select[name=type]").val() == "0") {
                        addAbsence.calcDayCount();

                        $("#addAbsence p.holUsing").html(addAbsence.holDayCount);
                    }
                    else {
                        $("#addAbsence p.holUsing").html("0");
                    }
                }
                else {
                    $("#addAbsence input[name=dateFrom], #addAbsence input[name=dateTo]").addClass("error");

                    $("#addAbsence p.holUsing").html("--");
                }
            }
            else {
                $("#addAbsence input[name=dateFrom], #addAbsence input[name=dateTo]").removeClass("error");
            }
        }
    });

    $("#addAbsence .addHalfDay").click(function () {
        addAbsence.calcDayCount();

        if ($("#addAbsence input[name=dateFrom]").val().length > 0 && $("#addAbsence input[name=dateTo]").val().length > 0 &&
            Date.parse($("#addAbsence input[name=dateFrom]").val()) <= Date.parse($("#addAbsence input[name=dateTo]").val())) {

            $("#addAbsence input[name=dateFrom], #addAbsence input[name=dateTo]").removeClass("error");

            if ($("#addAbsence tbody tr").size() < addAbsence.holDayCount) {
                addAbsence.addHalfDay();
            }
        }
        else {
            $("#addAbsence input[name=dateFrom], #addAbsence input[name=dateTo]").addClass("error");

    $("#addAbsence select[name=type]").change();
    )};


    $("form#addAbsence").submit(function () {
        var boolDate = $(this).find("input[name=dateFrom]").dateRangeValid($(this).find("input[name=dateTo]"));
        var boolComments = $(this).find("textarea[name=comments]").lengthValid(0, 350);
        var boolAbsenceType = $(this).find("select[name=type]").selectValid(1);

       )};

2 个答案:

答案 0 :(得分:0)

代码底部有两个嵌套错误。我不知道是不是这样。这是固定代码:

$("#addAbsence select[name=type]").change(function () {
    switch ($(this).val()) {
        case "0": case "1":
            $("#addAbsence .borderWrap.type").animate({ "width": 266 }, 300, "swing", function () {
                $("#addAbsence .borderWrap.tInfo").show();
            });
            $("#addAbsence .halfDays").show();
            $("#addAbsence .lateArrivalTime").hide();
            $("#addAbsence .paidHolidayCount").show();
            break;
        case "2":
            $("#addAbsence .borderWrap.type").animate({ "width": 266 }, 300, "swing", function () {
                $("#addAbsence .borderWrap.tInfo").show();
            });
            $("#addAbsence .halfDays").hide();
            $("#addAbsence .paidHolidayCount").hide();
            $("#addAbsence .lateArrivalTime").show();
            break;
        default:
            $("#addAbsence .borderWrap.tInfo").hide();
            $("#addAbsence .halfDays").hide();
            $("#addAbsence .borderWrap.type").animate({ "width": 554 }, 300, "swing");
    }
});

$("#addAbsence input.date").datepicker({
    "dateFormat": "DD, d MM, yy",
    onSelect: function () {
        var dateFrom = Date.parse($("#addAbsence input[name=dateFrom]").val());
        var dateTo = Date.parse($("#addAbsence input[name=dateTo]").val());

        if (!isNaN(dateFrom) && !isNaN(dateTo)) {
            var dates = addAbsence.getStartEndDate();

            if ((dateFrom <= dateTo) &&
                (dateFrom >= dates.dateFrom && dates.dateFrom <= dateTo) &&
                (dateFrom <= dates.dateTo && dates.dateTo >= dateTo)) {

                $("#addAbsence input[name=dateFrom], #addAbsence input[name=dateTo]").removeClass("error");

                if ($("#addAbsence select[name=type]").val() == "0") {
                    addAbsence.calcDayCount();

                    $("#addAbsence p.holUsing").html(addAbsence.holDayCount);
                }
                else {
                    $("#addAbsence p.holUsing").html("0");
                }
            }
            else {
                $("#addAbsence input[name=dateFrom], #addAbsence input[name=dateTo]").addClass("error");

                $("#addAbsence p.holUsing").html("--");
            }
        }
        else {
            $("#addAbsence input[name=dateFrom], #addAbsence input[name=dateTo]").removeClass("error");
        }
    }
});

$("#addAbsence .addHalfDay").click(function () {
    addAbsence.calcDayCount();

    if ($("#addAbsence input[name=dateFrom]").val().length > 0 && $("#addAbsence input[name=dateTo]").val().length > 0 &&
        Date.parse($("#addAbsence input[name=dateFrom]").val()) <= Date.parse($("#addAbsence input[name=dateTo]").val())) {

        $("#addAbsence input[name=dateFrom], #addAbsence input[name=dateTo]").removeClass("error");

        if ($("#addAbsence tbody tr").size() < addAbsence.holDayCount) {
            addAbsence.addHalfDay();
        }
    }
    else {
        $("#addAbsence input[name=dateFrom], #addAbsence input[name=dateTo]").addClass("error");
    }

    $("#addAbsence select[name=type]").change();
});


$("form#addAbsence").submit(function () {
    var boolDate = $(this).find("input[name=dateFrom]").dateRangeValid($(this).find("input[name=dateTo]"));
    var boolComments = $(this).find("textarea[name=comments]").lengthValid(0, 350);
    var boolAbsenceType = $(this).find("select[name=type]").selectValid(1);
});

答案 1 :(得分:0)

visual studio应该向您展示标记中的错误。 我使用的方法之一是删除几段代码并尝试运行。一旦你说了20-30行代码,那么找到这些错误会变得更容易。 但是在这种情况下我使用了jsLint http://www.jslint.com/ 它提出了Problem at line 84 character 5: Expected an identifier and instead saw ')'. 然后使用记事本++的大括号匹配,看到$("#addAbsence .addHalfDay").click(function () {包含一些错位的字符。 之后使用jslint发现了更多语法错误。在结尾处替换以下标记

//no errors before this
  $("#addAbsence .addHalfDay").click(function () {
    addAbsence.calcDayCount();

    if ($("#addAbsence input[name=dateFrom]").val().length > 0 && $("#addAbsence input[name=dateTo]").val().length > 0 &&
        Date.parse($("#addAbsence input[name=dateFrom]").val()) <= Date.parse($("#addAbsence input[name=dateTo]").val())) {

        $("#addAbsence input[name=dateFrom], #addAbsence input[name=dateTo]").removeClass("error");

        if ($("#addAbsence tbody tr").size() < addAbsence.holDayCount) {
            addAbsence.addHalfDay();
        }
    }
    else {
        $("#addAbsence input[name=dateFrom], #addAbsence input[name=dateTo]").addClass("error");
    }
$("#addAbsence select[name=type]").change();
});


$("form#addAbsence").submit(function () {
    var boolDate = $(this).find("input[name=dateFrom]").dateRangeValid($(this).find("input[name=dateTo]"));
    var boolComments = $(this).find("textarea[name=comments]").lengthValid(0, 350);
    var boolAbsenceType = $(this).find("select[name=type]").selectValid(1);



     });
} //end of init: function () 
}; //end of addAbsence = {