在jquery中是否有一种方法可以计算表单中所有空输入和文本区域的数量,针对以下类型:
复选框、日期、日期时间、电子邮件、月份、数字、单选按钮、电话、文本
因为每个表单都有一个名为maxInput的js变量。 如果maxInput是6(表单有6个输入),那么如果您计算输入并且它是6,我就知道所有内容都已填写。 是否有人知道如何完成这个任务。
在jquery中是否有一种方法可以计算表单中所有空输入和文本区域的数量,针对以下类型:
复选框、日期、日期时间、电子邮件、月份、数字、单选按钮、电话、文本
因为每个表单都有一个名为maxInput的js变量。 如果maxInput是6(表单有6个输入),那么如果您计算输入并且它是6,我就知道所有内容都已填写。 是否有人知道如何完成这个任务。
yourClass
的类,那么这个方法可能会对你有所帮助:$('.yourClass').filter(function(){
return !$(this).val();
}).length;
如果给定一个类为“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);
这是 JSFiddle 的链接:https://jsfiddle.net/qLedcr82/1/
另外,通常最佳实践是为单选按钮组设置默认值,否则解决方案的一部分将无法使用。