我正在複製select/multiselect元素的功能,我試圖使用此函數來顯示已在相關容器。我需要顯示所有在逗號分隔列表中選擇的值,但它目前只顯示一個選擇(最後一個選擇)。它還顯示所選列表項的複選框,背景色等,而不是複選框值(即value="Black"
)。修改此功能以顯示所有選中的複選框的值(而不是最後選中的)
我正在使用這個幾個多選表單元素,我無法使用jQuery UI MultiSelect Widget,因爲它們需要以非常特定的方式進行樣式設置(選項與背景顏色或圖像一起顯示並分佈在多個列等)。
以下附上相關的代碼,我已經發布了風格'假' -multiselect元素在這裏的工作示例:http://jsfiddle.net/chayacooper/GS8dM/2/
JS代碼片段
$(document).ready(function() {
$(".dropdown_container ul li a").click(function() {
var text = $(this).html();
$(".dropdown_box span").html(text);
});
function getSelectedValue(id) {
return $("#" + id).find("dropdown_box span.value").html();
}
});
HTML摘錄
<div class="dropdown_box"><span>Colors</span></div>
<div class="dropdown_container">
<ul>
<li><a href="#"><div style="background-color: #000000" class="color" onclick="toggle_colorbox_alt(this);" title="Black"><div class=CheckMark>✓</div>
<input type="checkbox" name="color[]" value="Black" class="cbx"/></div>Black</a>
</li>
<!-- More list items with checkboxes -->
</ul>
</div>
我試過其他的一些方法(包括許多在這裏列出的的:How to retrieve checkboxes values in jQuery),但沒有一個使用隱藏複選框和/或我需要在這些特定表單元素中加入的其他功能。
這解決了我的第一個問題:-D另一個問題是,不是附加複選框的值(即黑色),而是附加實際複選框,背景顏色等。 – 2013-02-26 08:01:43
@ChayaCooper:更新了答案以處理價值部分。 – 2013-02-26 09:01:34
這正是我所需要的:-D非常感謝你!我稍微修改了你的代碼,以便值以逗號分隔的列表顯示(而不是合併成一個長單詞;-)) – 2013-02-28 19:55:01