2

jquery multiselectプラグインを使用しています。オプションが選択されている場合は、選択ボックスの下のdivにすぐに出力されます。

プラグインサイトへのリンク

プラグインサイトでこれを見たことがありますが、実装方法がわかりません。

選択したすべての値を取得しますか?

最も簡単な方法は、選択ボックスでval()を呼び出すことです。

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

multiselectAPIを使用して同じことを実現できます。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(', ') );

これをリアルタイムで更新したい場合は、クリックイベントにバインドできます。

$("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 に答える