2

我正在使用 jquery 多选插件,如果选择了一个选项,我希望它立即打印在选择框下方的 div 中。

链接到插件站点

我在插件网站上看到了这个,但不知道如何实现它:

检索所有选定的值?

最简单的方法是在选择框上调用 val():

var values = $("select").val();

使用多选 API 也可以完成相同的操作。调用 getChecked 方法并映射一个新数组:

var array_of_checked_values =
$("select").multiselect("getChecked").map(function(){    return
this.value;  }).get();

任何帮助/指导将不胜感激。提前致谢

我的代码:

echo '<select name="tutor[]" id="tutor" multiple="multiple" size="5" class="required" title="Select Staff">';
$staff = get_records("user", "deleted", "0", "lastname ASC", "id,firstname,lastname,idnumber");
$sdenrolments=array($entry->enrolments);
$enrolled_staff = explode(",", $entry->enrolments);

foreach($staff as $tutor){  
if($tutor->id>1){
echo '<option value="'.$tutor->id.'"';
if(in_array($tutor->id, $enrolled_staff)) {echo 'selected="selected"';}
echo '>'.$tutor->lastname.' '.$tutor->firstname.'</option>';
}
}
4

1 回答 1

1

您可以使用.multiselect("getChecked"). 这将返回一个数组,然后您可以循环并从中提取各个值:

var output = [];

$.each( $("select").multiselect("getChecked"), function(){
    output.push( $(this).attr("title") );
});

$("#myDiv").html( output.join(', ') );

如果您希望它实时更新,您可以绑定到 click 事件:

$("select").multiselect({
   click: function() {
      var output = [];
      $.each( $("select").multiselect("getChecked"), function(){
         output.push( $(this).attr("title") );
      });
      $("#myDiv").html( output.join(', ') );
   }
});
于 2012-05-29T15:24:55.337 回答