2 liquan1004 liquan1004 于 2015.06.19 16:32 提问

ie8下 JS全选功能报错 求达人帮忙看下代码

// 요일계산
function autoCalDaysNm() {
for(var j=1; j<=29; ++j) {
var el = $("#writeForm input[name=atdDay" + j + "]");
var d = Date.parse("2016/02/" + el.val());
if (d) {
var t = d.toString("ddd");

            if (t == "토") {
                $("label", el.parent()).html(gDayOfWeek1[t]);
            } else if (t == "일") {
                $("label", el.parent()).html(gDayOfWeek1[t]);
            } else {
                $("label", el.parent()).html(gDayOfWeek1[t]);
            }

            if(t == "토" || t.toUpperCase() == "SAT" || t == "일" || t.toUpperCase() == "SUN") {
                checkDaysAll("tmpCheckDaysAll_" + j, "stsStat" + j, "stsStatDay" + j, "DEF");
            }
        }
    }
}

// 월간훈련일수변경시
function f_fixDayCnt(aData) {
    var stsFixdayCnt = $("#stsFixdayCnt");

    for(var i=0; i<atdRealPrsn; ++i) {
        if($("#writeForm input[name=stsFixdayCnt]:eq(" + i + ")").val() == "") {
            $("#writeForm input[name=stsFixdayCnt]:eq(" + i + ")").val(aData);
        }
    }

    // 출근일계산
    calculate();
}

// 전체출석
function checkMonthAll() {
    var stsStat = [];
    var stsStatDay = [];
    var attendType = "";

    if ($("#writeForm input[name=tmpCheckMonthAll]").prop("checked")) {
        attendType = $("#attendType").val();
    }

    for(var j=1; j<=29; ++j) {
        stsStat[j-1] = $("#writeForm input[name=stsStat" + j + "]");
        stsStatDay[j-1] = $("#writeForm input[name=stsStatDay" + j + "]");
    }

    for(var i=0; i<atdRealPrsn; ++i) {
        for(var j=1; j<=29; ++j) {
            var stsStatDayVal = trim(stsStatDay[j-1][i].value);

            // Y:훈련가능일, N:훈련가능기간 공휴일(토,일), X:훈련가능하지않은일자
            // 훈련가능일자만 처리한다. (공휴일 및 훈련불가일자 제외)
            if (stsStatDayVal == "Y") { 
                stsStat[j-1][i].value = attendType;
            }
        }
    }

    // 출근일계산
    calculate();
}

// 일자별전체체크
function checkDaysAll(pCheckDaysAll, pstsStat, pstsStatDay, aType) {
    var attendType = "";

    // 초기로딩시 토,일은 훈련없음으로 처리
    if(aType=="DEF") {
        attendType = "/X";
    } else {
        if ($("#writeForm input[name=" + pCheckDaysAll + "]").prop("checked")) {
            attendType = $("#attendType").val();
        } else {
            attendType = "";
        }
    }

    for(var i=0; i<atdRealPrsn; ++i) {
        var stsStatDayVal = $("#writeForm input[name=" + pstsStatDay + "]:eq(" + i + ")").val();

        stsStatDayVal = stsStatDayVal.toUpperCase();

        // Y:훈련가능일, N:훈련가능기간 공휴일(토,일), X:훈련가능하지않은일자
        if (stsStatDayVal != "X") {
            // 취소시 훈련가능기간 공휴일이면 훈련없음으로
            if(attendType=="") {
                if($("#writeForm input[name=" + pstsStatDay + "]:eq(" + i + ")").val()=="N") {
                    attendType = "/X";
                }
            }

            $("#writeForm input[name=" + pstsStat + "]:eq(" + i + ")").val(attendType);

            if(aType=="DEF") {
                $("#writeForm input[name=" + pstsStatDay + "]:eq(" + i + ")").val("N");
            }
        }
    }

    // 출근일계산
    calculate();
}

// 훈련생별 전체체크
function checkMemAll(pCheckMemAll, aIdx) {
    var attendType = "";

    aIdx--;

    if ($("#writeForm input[name=" + pCheckMemAll + "]").prop("checked")) {
        attendType = $("#attendType").val();
    } else {
        attendType = "";
    }

    for(var j=1; j<=29; ++j) {
        var stsStatDayVal = $("#writeForm input[name=stsStatDay" + j + "]:eq(" + aIdx + ")").val();

        // Y:훈련가능일, N:훈련가능기간 공휴일(토,일), X:훈련가능하지않은일자
        // 훈련가능일자만 처리한다. (공휴일 및 훈련불가일자 제외)
        if (stsStatDayVal == "Y") { 
            $("#writeForm input[name=stsStat" + j + "]:eq(" + aIdx + ")").val(attendType);
        }
    }

    // 출근일계산
    calculate();
}

var atdRealPrsn = 4;
var maxDayCha = 0;


这是一段全选复选框的JQ   在IE9以上都没问题  在IE8下 var stsStatDayVal = trim(stsStatDay[j-1][i].value); 这段总报错为空或不是对象,求高人解答  在线等  谢谢

3个回答

u012216727
u012216727   Ds   Rxr 2015.06.19 16:42

我写的东西刚好和你的相反,用其它浏览器正常,用IE8以下正常,IE8以上就出现畸形。

liquan1004
liquan1004 这因为是机关网站,只在IE下使用,不过IE9以上都没事,就ie8会报错
2 年多之前 回复
syjgreen07
syjgreen07   2015.06.19 16:58

一个全选复选框这多简单的东西,居然这么长?
$("input[name=checkbox]").attr("checked",true);

danielinbiti
danielinbiti   Ds   Rxr 2015.06.20 09:17
 var stsStatDayVal = trim(stsStatDay[j-1][i].value);
 改成
 var stsStatDayVal = trim(stsStatDay[j-1][0].value);
liquan1004
liquan1004 那为什么在IE8下会出错呢?
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片