add remove multiselect elements

by Korah Babu Varghese

HTML

<script src="http://cdn.kendostatic.com/2013.1.514/js/jquery.min.js"></script>
<script src="http://cdn.kendostatic.com/2013.1.514/js/kendo.all.min.js"></script>
<link rel="stylesheet" href="http://cdn.kendostatic.com/2013.1.514/styles/kendo.common.min.css">
<link rel="stylesheet" href="http://cdn.kendostatic.com/2013.1.514/styles/kendo.metro.min.css">
<a href="#" class="k-button" id="button1">add Africa &amp; Europe</a>
<a href="#" class="k-button" id="button2">add North &amp; South America</a>
<a href="#" class="k-button" id="button3">remove Africa &amp; South America</a>
<div id="example" class="k-content">
    <div class="demo-section">
        <h3 class="title">Select Continents</h3>
        <select id="select"></select>
    </div>
</div>

JavaScript

var data = [
    { text: "Africa", value: "1" },
    { text: "Europe", value: "2" },
    { text: "Asia", value: "3" },
    { text: "North America", value: "4" },
    { text: "South America", value: "5" },
    { text: "Antarctica", value: "6" },
    { text: "Australia", value: "7" }
];

var multi = $("#select").kendoMultiSelect({
    dataTextField : "text",
    dataValueField: "value",
    dataSource    : data,
    value         : ["1", "2", "3"]
}).data("kendoMultiSelect");

$("#button1").on("click", function () {
    var values = multi.value();
    var merge = $.merge(["1", "2"], values);
    multi.dataSource.filter({});
    multi.value($.unique(merge));
});
$("#button2").on("click", function () {
    var values = multi.value().slice();
    var merge = $.merge(values, ["4", "5"]);
    multi.dataSource.filter({});
    multi.value($.unique(merge));
});

$("#button3").on("click", function () {
    var subtract = ["1", "5"];
    var values = multi.value().slice();
    values = $.grep(values, function(a) {
        return $.inArray(a, subtract) == -1;
    });
    multi.dataSource.filter({});
    multi.value(values);
});