Jquery计算所有空字段

时间:2015-07-19 17:54:56

标签: jquery html-input

在jquery中是否有办法计算表单中的所有空输入和textareas,适用于以下类型

复选框, 日期, 约会时间, 电子邮件, 月, 数, 无线电, 电话, 文本

因为每个表单都有一个js变量maxInput。 如果maxInput为6(表单有6个输入) 然后,如果你计算输入,它是6我知道所有都填补。 有谁知道如何完成这个。

2 个答案:

答案 0 :(得分:3)

假设所有inputs都有一个名为yourClass的类,那么这可能会对您有所帮助:

$('.yourClass').filter(function(){
return !$(this).val();
}).length;

答案 1 :(得分:1)

这适用于您在给定具有类' test-form'的表单时指定的变量/动态数量的输入。确保你设置value =""在您选择的默认选项上。检查单选按钮组是否未被选中有点棘手:

var emptyTextCheckboxAndSelect = $('.test-form input, .test-form select').filter(function(){

    if($(this).attr('type') === "radio"){
        return false;//we'll check for empty radio groups elsewhere        
    }

    if($(this).attr('type') === "checkbox"){
        return !$(this).prop("checked");
    }

    return !$(this).val();//this only works for select if default option explicitly sets value=""

}).length;


var radioNameHash = {},
    uncheckedRadioButtonGroups = 0;

$('.test-form input[type="radio"]').each(function(i, radioButton){

    if(radioNameHash[$(this).attr('name')] === undefined){
        uncheckedRadioButtonGroups++;
        radioNameHash[$(this).attr('name')] = true;
    }

    if($(this).prop("checked") === true){
        uncheckedRadioButtonGroups--;
    }
});

var totalUnfilledFields = emptyTextCheckboxAndSelect + uncheckedRadioButtonGroups;

alert(totalUnfilledFields);

这里是小提琴:https://jsfiddle.net/qLedcr82/1/

顺便说一句,为单选按钮组设置默认值通常是最佳做法,这会使解决方案的这一部分无效。