2011-09-08 70 views
0

我已經作出了自己的選擇下拉菜單,其中的下拉有複選框:如何獲取複選框的標籤文字使用jQuery

---Select---- 
-option1- 
-option2- 
-option3- 

對於用戶ONY選擇的顯示,但是當用戶點擊它顯示的選項(如正常形式的選擇)。選項是複選框。現在我想要做的是當用戶點擊它們並將其傳遞給「select」時,獲取這些複選框的標籤。另外最大的問題是,如果用戶取消選擇所有複選框,如何將文本重置爲「選擇」?

的JS該自定義選擇僅僅是這樣的:

$('.custom-select').click(function() { 
$(this).children('.custom-select-drop').toggleClass('not-showed'); 
)}; 

當複選框的複選框的用戶檢查一個獲取所選類如果信息是任何幫助。

編輯: 的HTML:

<div class="custom-select"> 
<span class="selectTitle">Something</span> 
<div class="custom-select-drop not-showed"> 
<label for="check1"> 
<input type="checkbox" class="ch" id="check1" />Check1 
</label> 
<label for="check2"> 
<input type="checkbox" class="ch" id="check2" />Check2 
</label> 
<label for="check3"> 
<input type="checkbox" class="ch" id="check3" />Check3 
</label> 

現在讓我們假設用戶點擊複選框ID CHECK2和check3 ..我想獲得這些標籤文本(CHECK2和Check3),並把它傳遞給裏面..替換文字。如果用戶取消選擇複選框,則selectTitle文本將更改爲默認值。

+0

你能不能請把你的整個代碼? – Side

+0

我不知道你的標記是如何的,但是如果你有''和'

+0

我不明白這一點:'當用戶點擊它們並將其傳遞給「select」時,獲取這些複選框的標籤。你選擇傳遞標籤是什麼意思? –

回答

0

如果我理解正確的任務,這種解決方案可能會有所幫助

樣本HTML:

<select id="select_element"> 
    <option id="default"> - select - </option> 
</select> 

<div> 
    <label><input type="checkbox" class="checkboxes" value="someval1">Box value 1</label><br> 
    <label><input type="checkbox" class="checkboxes" value="someval2">Box value 2</label><br> 
    <label><input type="checkbox" class="checkboxes" value="someval3">Box value 3</label><br> 
    <label><input type="checkbox" class="checkboxes" value="someval4">Box value 4</label><br> 
</div> 

複選框操作代碼:

$(document).ready(function() { 
    var default_opt = false; 

    $(".checkboxes").change(function() { 
     var opt_id = 'opt' + $(this).val(); 

     if($(this).is(":checked")) { 

      // Saving default value 
      if(!default_opt) { 
       default_opt = $('#select_element > #default').clone(); 
       $('#select_element > #default').remove() 
      } 

      var text = $(this).parent().text().trim(); ///< Getting trimmed label's text 
      var item = $('<option></option>').attr({ id: opt_id, value: text }).text(text); ///< Creating new <option> element with that text 

      $('#select_element').append(item); ///< Puting this <option> to the <select> 
     } 
     else { 
      $('#select_element > #' + opt_id).remove(); 

      // Restoring default value (if no checkboxes are selected 
      if(! $('#select_element').children().length) { 
       $('#select_element').append(default_opt); 
      } 
     } 
    }); 
}); 
+0

這幾乎是正確的。我需要顯示多個標籤(如果多個複選框被選中)。 – skeer

相關問題