2017-01-02 75 views
0

值我面對,我想在點擊事件選擇值的問題。我嘗試了change事件,但我得到所有值逗號分隔,而不是當前值。選擇2 +獲得點擊

我想要做的是,假設有一個All選擇多個選項。所以如果用戶選擇All選項,那麼它應該清除所有選擇的選項,並且只會顯示All選項。

我曾嘗試下面的代碼

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

它顯示null先點擊。

而且

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

顯示以逗號分隔格式的所有值。沒有例子我發現onclick事件與select2 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

您是否嘗試過:'$(本).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

對不起小提琴:)這是一個; https://jsfiddle.net/bayahiassem/gtew005w/7/ –

+0

選擇所有其他國家。你會發現問題 – urfusion

0

我沒有得到你。 如果我更正。

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

以下TypeError:「:selected」不是函數 – urfusion

+0

$(this ).find( ':選擇');檢查這個 – NSK

+0

如果有其他條目,那麼它也會返回其他條目。 – urfusion

0

給你。它將你給當前選中的項目(S) - 按住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

我想清除所有選項是'All'選項被選中。 – urfusion

+0

清除還是選擇? – motanelu

+0

如果選擇了「全部」選項,則先前的條目將從列表中刪除,並且只顯示「全部」選項。 – 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鏈接,工作代碼。