2012-01-26 115 views
0

我有這個大的jQuery函數,在頁面中創建複選框,並在複選框被選中時爲每個複選框分配不同的顏色。jQuery重置複選框值

function initializeCheckboxes() { 
    //This changes visual state of checkboxes when you click them, and binds the event to optionsCheckboxClicked function 
    var color_codes=[]; 
    color_codes['green']='#79A13E'; 
    color_codes['bordeaux']='#A74A5B'; 
    color_codes['red']='#CC0000'; 
    color_codes['orange']='#FF6600'; 
    color_codes['violet']='#660066'; 
    color_codes['pink']='#FA218C'; 
    jQuery('div.form_box input.checkbox').parent().unbind('click'); 
    jQuery('div.form_box input.checkbox').parent().click(function(){ 
    aCheckboxButton=this; 
    if (jQuery(aCheckboxButton).attr('checked')) { 
     jQuery(aCheckboxButton).removeAttr('checked'); 
     jQuery(aCheckboxButton).attr('class','span_checkbox'); 
     jQuery(aCheckboxButton).find('input').removeAttr('checked'); 
     jQuery(aCheckboxButton).parent().find('label').removeClass('label_checked'); 
     jQuery('div.form_box span.span_checkbox.disabled').attr('class','span_checkbox'); 
     jQuery('div.form_box label.input_text.disabled').attr('class','input_text'); 
     } 
    else { 
     total_checked=jQuery(aCheckboxButton).parent().parent().parent().find('label.input_text.label_checked').length; 
     if (total_checked<6) 
     { 
     if (total_checked==5) { 
      jQuery.each(jQuery('div.form_box input.checkbox'), function(i,v) { 
      if(jQuery(v).attr('checked')) return; 
      jQuery(v).parent().parent().find('span').attr('class','span_checkbox disabled'); 
      jQuery(v).parent().parent().find('label.input_text').attr('class','input_text disabled'); 
      }); 
      } 
     jQuery(aCheckboxButton).find('input').attr('checked',true); 
     jQuery(aCheckboxButton).parent().find('label.input_text').attr('class','input_text label_checked'); 
     colors=['span_checkbox_green','span_checkbox_bordeaux','span_checkbox_red','span_checkbox_orange','span_checkbox_violet','span_checkbox_pink']; 
     jQuery.each(colors, function(i,v){ 
      if (jQuery(aCheckboxButton).parent().parent().parent().find('span.'+v).length==0) { 
      jQuery(aCheckboxButton).attr('class',v); 
      jQuery(aCheckboxButton).attr('checked',true); 
      optionsCheckboxClicked(aCheckboxButton,color_codes[v.substring(14)]); 
      return false; 
      } 
      }); 
     } else { 
     jQuery(aCheckboxButton).find('input').removeAttr('checked'); 
     } 
     } 
    }); 
} 

問題是,我需要創建一個函數,它會重置所有的複選框,當它被調用。類似於resetCheckboxes()。所以它會清除jQuery在其內存中的所有值。

我不是一個JavaScript編碼器,所以你能幫助我嗎?

+1

變化'變種color_codes = [];''到變種color_codes = {};'。 –

+0

你的意思是重置複選框的顏色? – JackalopeZero

+0

我需要重置存儲在jQuery內存中的所有值,顏色和複選框都只有一個函數 –

回答

0

您應該爲所有複選框(例如「複選框」)分配一個類,以便在一次調用中像這樣獲取所有複選框,然後立即應用所有更改,將所有值設置爲其默認值。

0

嘗試是這樣的:

jQuery('body').find(':checkbox').removeAttr('class') 
+0

您的意思只是'jQuery(':checkbox')'... – vsync