我正在使用jquery multiselect插件,如果选择了一个选项,我希望它立即打印在选择框下方的div中。
我在插件网站上看到了这个,但不知道如何实现它:
检索所有选定的值?
最简单的方法是在选择框上调用val():
var values = $("select").val();
使用multiselect 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>';
}
}
答案 0 :(得分: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(', ') );
}
});