使用JavaScript验证checkbox checked属性是否为空

时间:2014-08-18 04:57:02

标签: javascript jquery twitter-bootstrap

我想验证复选框已检查属性。如果未选中其中任何一个,则在span:&#34中显示此句;您应该选择其中一个"当我选择其中一个时,信息必须消失。

<form  method="get"action="#" onsubmit="return vali();">
    <span id="textspan" style="color:red"></span>
    <input type="checkbox" class='gender' id="male">male
    <input type="checkbox" class='gender' id="female">female
    <input type="submit" class="validate" value="send" />
</form>
function vali() {
    var bool = true;

    var checkedCount = $('input[class="gender"]:checked').length;
    if (checkedCount == 0) {
        $("#textspan").html('select one of them');
        bool = false;
    }
    if(checkedCount >= 1) 
    {
        $("#textspan").html('');
        bool = true;
    }

    return bool;    
}

2 个答案:

答案 0 :(得分:3)

您没有为复选框的更改(或点击)事件添加任何功能:

你的函数'vali()'附在表单提交上 这意味着只有单击发送按钮

,您的功能才会起作用

因此,如果您有错误,并且在单击其中一个(复选框)时想要不使用它,则必须向该事件添加一个函数:

function vali() {
    var bool = true;

    var checkedCount = $('input[class="gender"]:checked').length;
    if (checkedCount == 0) {
        $("#textspan").html('select one of them');
         bool = false;
    }
    if(checkedCount >= 1) 
    {
        $("#textspan").html('');
        bool = true;
    }
    return bool;
}

$(".gender").click(function(){
    var checkedCount = $('input[class="gender"]:checked').length;
    if(checkedCount >= 1){
                $("#textspan").html('');
            }
});

当您单击“.gender”时触发点击事件,最好将您的功能设为:

$(".gender").click(function(){
    $("#textspan").html('');
});

答案 1 :(得分:2)

尝试以下

<form  method="get"action="#" onsubmit="return vali();">
    <span id="textspan" style="color:red"></span>

    <input type="radio" name="rad" class='gender' id="male">male
    <input type="radio" name="rad" class='gender' id="female">female
    <input type="submit" class="validate" value="send" />
    </form>

<script>        

        $(document).ready(function(){
        $(".gender").click(function(){
        $("#textspan").html('');
    });
    });

         function vali() {
            var bool = true;

                var checkedCount = $('input[class="gender"]:checked').length;
                if (checkedCount == 0) {
                    $("#textspan").html('select one of them');
                    bool = false;
                }
                if(checkedCount >= 1) 
                {
                    $("#textspan").html('');
                    bool = true;

                }
                return bool;

        }
        </script>

fiddler喜欢: - here