如何使用javascript显示警告消息复选框?

时间:2013-07-04 08:06:07

标签: javascript

我正在使用以下代码来检测gridview模板字段中的复选框是否已选中。如果未选中任何复选框,则我想显示警告消息。

   function findCheckBox() {

        var inputElements = document.getElementsByTagName('input');
        var chekSelect = false;
        for (var i = 0; i < inputElements.length; i++) {
            var myElement = inputElements[i];


            if (myElement.type === "checkbox") {

                if (myElement.checked === false) {

                    chekSelect = true;
                    return true;
                }
            }

            if (chekSelect === true) {
                return true;
            }

            else {
                alert('Please Check Atleast one record to print cheque!!!');
                return false;
            }
        }  

    }

但是当我点击我的按钮时,使用此代码,即使选中了一个或多个复选框,它也会显示一次错误消息。我在这做错了什么。任何人都可以帮助我。

3 个答案:

答案 0 :(得分:3)

你的逻辑略有偏差。更正版本:

<强> jsFiddle demo

function findCheckBox() {
    var inputElements = document.getElementsByTagName('input');
    var chekSelect = false;
    for (var i = 0; i < inputElements.length; i++) {
        var myElement = inputElements[i];

        if (myElement.type === "checkbox") {
            if (myElement.checked) {
                chekSelect = true;
                break;
            }
        }
    }

    if(!chekSelect) {
        alert('Please Check Atleast one record to print cheque!!!');
        return false;
    } else {
        return true;
    }
}

我已更改.checked测试,以测试true而不是false,因为您想知道是否至少选中了一个复选框。我还添加了一个休息时间,并将警报移到了for的外部,因为在完成for之前你不会知道是否检查了一个复选框。

答案 1 :(得分:3)

试试这个

function findCheckBox() {
    var inputElements = document.getElementsByTagName('input');
    for (var i = 0; i < inputElements.length; i++) {
        var myElement = inputElements[i];
        if (myElement.type === "checkbox" && myElement.checked) {
            return true;
        }
    }
    alert('Please Check Atleast one record to print cheque!!!');
    return false;
}

答案 2 :(得分:1)

使用JQuery:

var checked = false;
$('input:checkbox').each(function(){
    if($(this).prop('checked')){
        checked = true;
        break;
    }
});

if(!checked) alert('Please Check At least one record to print cheque!!!')