使用javascript函数在chrome和firefox中不起作用的gridview行中应至少选中一个复选框

At least One Check box should be checked in gridview rows using javascript function not working in chrome and firefox

本文关键字:复选框 一个 gridview chrome 函数 javascript firefox 使用 不起作用      更新时间:2023-09-26

网格视图行中的复选框验证检查问题

嗨,我写了如下的js函数,它将用于检查至少一个复选框,应该在侧网格视图行中选中,在点击提交按钮之前,这段代码在IE中运行良好,但在Firefox和chrome中失败了,有人能告诉我哪里错了吗。

Hers是的函数

function ClientCheck() {
    var valid = false;
    var gv = document.getElementById("ctl00_cplContent_gvCurrenttarrif");   
    for (var i = 0; i < gv.all.length; i++) {
        var node = gv.all[i];
        if (node != null && node.type == "checkbox" && node.checked) {
            valid = true;
            break;
        }
    }
    if (!valid) {
        alert("Invalid. Please select a checkbox to continue with changes.");
    }
    return valid;
}

Element.all不是标准的,所以您不应该使用它。请改用childNodes。

按照以下方式更改代码。

function ClientCheck() {
    var valid = false;
    var gv = document.getElementById("ctl00_cplContent_gvCurrenttarrif");   
    for (var i = 0; i < gv.childNodes.length; i++) {
        var node = gv.childNodes[i];
        if (node != null && node.type == "checkbox" && node.checked) {
            valid = true;
            break;
        }
    }
    if (!valid) {
        alert("Invalid. Please select a checkbox to continue with changes.");
    }
    return valid;
}

最好使用jQuery或类似的库来访问DOM元素。

例如,使用jquery

var checkedBoxesCount = $("<%=gvCurrenttarrif.ClientID%>").find("input:checkbox:checked").length;
if(checkedBoxesCount==0) alert("NO CHECKBOX SELECTED");

突出注释罗摩克里希纳-p作为答案:

http://forums.asp.net/t/1932293.aspx?Check+框+验证+检查+问题+输入+网格视图+行+

工作代码为:

function ClientCheck() {
    var valid = false;
    var gv = document.getElementById("ctl00_cplContent_gvCurrenttarrif");
    for (var i = 0; i < gv.getElementsByTagName("input").length; i++) {
        var node = gv.getElementsByTagName("input")[i];
        if (node != null && node.type == "checkbox" && node.checked) {
            valid = true;
            break;
        }
    }
    if (!valid) {
        alert("Invalid. Please select a checkbox to continue with changes.");
    }
    return valid;
}