2

説明

私は選択したjqueryプラグインを使用していますが、これはほとんど次のようなことを行います:

ここに画像の説明を入力

これにより、各オプションを 1 つずつ追加したり、各オプションを 1 つずつ削除したりできます。選択したオプションごとに、選択したオプションのidとして新しい要素を作成します。

問題

問題は、リストからオプションを削除するときです。例えば:

$('#multiple-select').on('change', function(e){
  alert($(e.target).val());
});

オプションを追加すると正しいが返されますが、オプションを削除するとnullが返されます。選択解除されたオプションの値を取得して、他の要素でそれを削除できるようにする必要があります。

質問

選択解除されたオプションの値を取得して、null ではなく実際の値を返すにはどうすればよいですか? または、この問題を回避する別の方法はありますか?

私ができる必要があるのは、選択が解除されているオプションを見つけて、他の要素から削除することだけです (要素の ID がオプションの値に基づいて構築されていることを知っています)。

アップデート

要求に応じてコードを削除します。

$('body').on('change', benefs, function(e){
  var $nbparts = $(participantNbParts),
      $target = $(e.target),
      $val = $target.val(),
      $name = $target.text();

      if($val == null){
        //this is because we deleted something thus we need to remove it from $nbparts which is a pitty since we don't know what it was before it got deleted
      }else{
        //someone was added
        $(create_row_expense_nb_parts_participant($name, $val)).appendTo($nbparts).show('slow');
        $nbparts.parent().show('fast');
      }
});
4

2 に答える 2