2014-04-04 176 views
0

只要用戶提交而未檢查所有單選按鈕,未應答的按鈕應以與選中的按鈕不同的背景顏色顯示。路上我試圖執行,這是:更改單選按鈕的背景顏色(如果未選中)

  1. 創建一個空的陣列 - 「存儲」
  2. 循環每個單選按鈕,並在陣列「存儲」推數字1(真),如果該項目已被選中,否則爲0(否)。
  3. 然後,我想循環這個數組,並添加一個類到那些在「商店」中具有零值的商品。

    $(document).ready(function(){ 
        $('#form').submit(function(){ 
         var isValid = true; 
         var store = new Array(); 
         $("input:radio").each(function() { 
          if($(this).prop('checked',true)){ 
           store.push(1);} 
          else{ 
           store.push(0); 
           isValid = false;}   
         }); //.each 
          if(!isValid){ 
           for(var i=0;i < store.length;i++){ 
            if(store[i]===0){ 
             $('input[name=item' + i +']').addClass("not_answered");} 
            }//end of for-loop 
           return false;} 
          else{ 
           return true;} 
    
        }); //submit 
    });//document ready 
    

我在做什麼錯?

我的小提琴:

FIDDLE

+2

這裏有一個有趣的試驗,添加類的元素,看看單選按鈕可以像這樣 - > http://jsfiddle.net/adeneo/P7UgE/1/ – adeneo

+0

一旦你已經運行了測試,並且看到你不能將背景顏色應用到這樣的無線電輸入,要麼將每一個包裹在div中,或爲無線電輸入創建標籤並應用分類對他們來說。 – Shaunak

+0

錯誤#1在你的小提琴中。該表格具有絞線ID'id =「#form」'。應該是'id =「form」' – j08691

回答

0

我認爲你可以簡化這個有點DEMO

$('form').on('submit', function(e){ 
    var radios = $(this).find('input:radio').removeClass('notChecked'); 
    radios.filter(':not(:checked)').addClass('notChecked'); 
    if(radios.hasClass('notChecked')) return false; 
});