收音机和复选框无法验证

时间:2017-03-24 21:01:49

标签: javascript jquery client-side-validation

我想验证表单的所有类型的输入,但只有单选按钮和复选框才能验证。

这是我的代码

function validateFormSection() {
    var valid = true;
    var section = $('.tab-pane.active');
    var inputs = section.find('input, select, textarea','radio','checkbox');

    var focusElem;

    inputs.each(function(index, el) {
        var elem = $(el); 
        if (elem.prop('required')) { 
            if (elem.val() == "") {
                elem.closest('.form-group').addClass('has-error');
                valid = false;
            }
        }

    });



    if (!valid) {
        focusElem.focus();
    }
    return valid;
}

2 个答案:

答案 0 :(得分:1)

find('input, select, textarea','radio','checkbox');

广播和复选框不是元素。您基本上是在说,找到所有名为<radio><checkbox>的元素。

这不会是一个问题,因为input将封装这些元素。问题来自find的论点。当只需要一个时,你有3个参数。

find('input, select, textarea');

如果您想明确检查无线电和复选框,可以使用:

find('input[type=radio], input[type=checkbox]')

答案 1 :(得分:0)

技术上,Checkbox和Radio按钮始终有效,因为它们是二进制的。但是如果你想查看是否选中了一个复选框,我是如何在jQuery中执行的:

$("#chkInclude").is(':checked')