使用Jquery在Multi select中更新选定的值?

时间:2009-12-30 02:44:00

标签: jquery

这是我检查选中了哪些复选框的功能。

function updateTagChecked() {
         var list_tag_selected = [];//to store the value of checkboxs selected.
     $('input[name=tag]:checked').each(function() {
         list_tag_selected.push($(this).val());
        });
     $('#tag_checked').val(list_tag_selected.join("&"))//Append this list to hidden field

    }
    //When are checkbox are click?
    $(function() {
         $('#collapse_option input').click(updateTagChecked);
         updateTagChecked();
     });

我想为多选

做同样的事情
<div id collapse_option>
    <li><label for="id_city">City:</label> 
   <select multiple="multiple" name="city" id="id_city">
    <option value="1">Phnom Penh</option>
    <option value="2">Takeo</option>
    <option value="3">Kampot</option>
    <option value="4">Kampongthom</option>
    <option value="5">Siemreip</option>
    <option value="6">pursat</option>
    <option value="7">preyveng</option>
    </select></li>
  </div>
<input type="hidden" id="store_multiselected" name="store_multiselected" value=""/>

在多选中我们可以这样做。我想在隐藏字段中为多选中的每个选中存储值,如上所述。

2 个答案:

答案 0 :(得分:1)

是的,只需使用选择器select[name=city] option[selected]代替input[name=tag]:checked

答案 1 :(得分:1)

当它是多选时,val()已经是一个列表:

function updateTagChecked() {
    var list_tag_selected = $('#id_city').val();     // first pull values from multiselect
    $('input[name=tag]:checked').each(function() {
        list_tag_selected.push($(this).val());       // then from other checkboxes
    });

    //Append this list to hidden field
    $('#tag_checked').val(list_tag_selected.join("&"));
}

//When are checkbox are click?
$(function() {
     $('#collapse_option input').click(updateTagChecked);
     updateTagChecked();
});