2017-01-02 11 views
0

clickイベントで選択値が必要な問題に直面しています。私はchangeイベントで試しましたが、現在の値の代わりにカンマ区切りのすべての値を取得します。select 2 + click on value

私がしたいことは、Allオプションを持つ複数のオプションがあるとします。したがって、ユーザーがAllオプションを選択すると、選択したすべてのオプションがクリアされ、Allオプションのみが表示されます。

私はそれが最初のクリックでnullを表示するコード

$(".chzn-select").on('select2:selecting', function() { 
    var st = ($(this).select2('val')); 
} 

の下に試してみました。カンマ区切り形式で

そして

$(".chzn-select").on('change', function() { 
    var st = ($(this).select2('val')); 
} 

ショーのすべての値。私が見つけた例はありませんonclickselect2 JSのイベントです。ここでevents

HTML

<select name="country[]" multiple="" data-placeholder="Select country" class="form-control chzn-select" required="required" id="country"> 
    <option disabled="disabled" value="1">Abu Dhabi</option> 
    <option value="2">Dubai</option> 
    <option disabled="disabled" value="3">Singapore</option> 
    <option disabled="disabled" value="4">Thailand</option> 
    <option value="8">Afghanistan</option> 
    <option value="All">All</option> 
</select> 

のリストは、ここで私はあなたを取得していないjsfiddle

+0

あなたは試しましたか? '$(this).val()'? – R3tep

+0

@ R3tep:はい、 '2,3,4、...などの値も返します。 – urfusion

+0

htmlを入力してください – Arun

答えて

1

https://jsfiddle.net/bayahiassem/gtew005w/11/

$(".chzn-select").select2({selectOnClose: true}).on("select2:selecting", function(evt) { 
     if(evt.params.args.data.id == 'All') { 
     $(".chzn-select").val(null).trigger("change"); 
     } else { 
     $('.chzn-select > option[value=All]').prop("selected", false); 
     } 
    }); 
+0

が機能していません。あなたのコードを確認してください – urfusion

+0

申し訳ありませんwronfフィドル:)ここに1つです; https://jsfiddle.net/bayahiassem/gtew005w/7/ –

+0

他のすべての国を選択してください。問題が見つかりました – urfusion

0

です。 私は正しい場合。

$(this).select2('val').find(':selected'); 
+0

TypeError:":selected "は関数ではありません – urfusion

+0

$ ).find( ':selected');これをチェックしてください – NSK

+0

他のエントリがある場合は、それも他のエントリを返します。 – urfusion

0

ここにあります。私はこれが働くことを願っています複数の選択のためにCtrl]キーを押し

$(function() { 
 
    $(".chzn-select").on('change', function (evt) { 
 
    $('#selected').text('Selected: ' + ($(this).val())) 
 
    }) 
 
})
select { 
 
    width: 50%; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<select name="country[]" multiple="" data-placeholder="Select country" class="form-control chzn-select" required="required" id="country"> 
 
    <option disabled="disabled" value="1">Abu Dhabi</option> 
 
    <option value="2">Dubai</option> 
 
    <option disabled="disabled" value="3">Singapore</option> 
 
    <option disabled="disabled" value="4">Thailand</option> 
 
    <option value="8">Afghanistan</option> 
 
    <option value="All">All</option> 
 
</select> 
 

 
<div id="selected"></div>

+0

すべてのオプションをクリアするには、「すべて」オプションが選択されています。 – urfusion

+0

をクリアまたは選択してくださいか? – motanelu

+0

'All'オプションを選択した場合、前のエントリはリストから削除され、' All'オプションだけが表示されます。 – urfusion

0

$(".chzn-select").select2({selectOnClose: true}); 
$(".chzn-select").on("select2:select", function (evt) { 
    if($.inArray('All',$(this).val()) != -1){ 
    $(this).val('All').trigger("change"); 
    } 
}); 
- あなたは現在選択した項目(複数可)それを与えます

あなたのjsコードをこれで置き換えればうまくいきます。

ここには作業コード用のjsfiddleリンクがあります。