2015-07-19 80 views
2

有沒有辦法在jQuery來計算所有空輸入和文字區域的形式,以下類型的jQuery的統計所有空字段

複選框, 日期, 日期時間, 電子郵件, 月, 號, radio, tel, text

因爲每個窗體都有一個js變量maxInput。 如果maxInput是6(表單有6個輸入) 那麼如果你計算輸入,它是6我知道所有填充。 有誰知道如何完成這個。

回答

1

這應該給予帶班的考試形式「形式指定的輸入變量/動態數工作。只要確保在選擇的默認選項上設置了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/

順便說一句,這是典型的設置爲單選按鈕組這將使默認值的最佳實踐那部分解決方案毫無用處。

2

假設所有inputs有一個名爲類:yourClass那麼這可能會幫助您:

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

這是否也計算無線電和選擇框? – Bham

+0

選擇,是 - 複選框和無線電不太可能。另請注意,如果字段中的值爲數字0,則會返回誤報。 –

+0

它不會。 https://jsfiddle.net/qLedcr82/ –