2014-02-25 68 views
3

我有這個奇怪的問題與劍道multiselect。Kendo Multiselect值設置Bug

<input id="addTags" /><br> 
<input type="button" onclick="fillaList();" value="fill List" /> 
<input type="button" onclick="clearList();" value="Init List" /> 

var list=[{label:'tag1', value:'1'}, 
     {label:'tag9', value:'9'}, 
     {label:'tag8', value:'8'}, 
     {label:'tag7', value:'7'}, 
     {label:'tag6', value:'6'}, 
     {label:'tag5', value:'5'}, 
     {label:'tag4', value:'4'}, 
     {label:'tag3', value:'3'}, 
     {label:'tag2', value:'2'}]; 

function fillData(tagIds){ 

    var tagObj = $("#addTags").data("kendoMultiSelect"); 
    if (tagObj == undefined) { // if not loaded 
     $("#addTags").kendoMultiSelect({ 
      dataTextField: "label", 
      dataValueField: "value", 
      dataSource: list, 
      value: tagIds, placeholder: "Select from list", 
      change: function() { 
       // change 
      } 
     }); 
    } else { // if already loaded only change the values. 
     tagObj.value(tagIds); 
     console.log(tagIds); 
     console.log(tagObj.value()); 
    } 
} 
function fillaList(){ 
    var tagIds=[1,2,3]; 
    fillData(tagIds); 
} 
function clearList(){ 
    fillData([]); 
} 

http://jsfiddle.net/ruchan/AgV52/1/

問題複製

  • 點擊「初始化列表」然後鍵盤新標籤添加到框。

  • 現在點擊填寫列表按鈕。 全部值未被選中。或有時只選擇1個

當用鼠標選擇時,這個問題不存在。

我在Chrome v32.0.1700.107米

+0

我測試過了,看不到任何問題。你能否解釋一下你想要發生什麼以及發生什麼? –

+0

好的。首先檢查分別點擊「初始列表」和「填充列表」按鈕時會發生什麼。初始化列表初始化kendomultibox,填充列表填充值爲1,2,3的3個標籤。 但當你按照問題所示做「鍵盤」複製不使用鼠標,那麼值不顯示... 我已經測試它在鉻和火狐它,我可以複製它。 – Ruchan

+0

我會這樣做,但我不能說每個人都使用空格鍵而不是輸入,不是嗎?任何其他解決方法將有所幫助。加上剛剛意識到,不能使用'空格鍵'來選擇:p – Ruchan

回答

4

測試之前,在多選設置新值之前,您應該清洗過濾器tagObj.dataSource.filter({});

你的功能應該是:

function fillData(tagIds){ 

    var tagObj = $("#addTags").data("kendoMultiSelect"); 
    if (tagObj == undefined) { // if not loaded 
     $("#addTags").kendoMultiSelect({ 
      dataTextField: "label", 
      dataValueField: "value", 
      dataSource: list, 
      value: tagIds, placeholder: "Select from list", 
      change: function() { 
       // change 
      } 
     }); 
    } else { // if already loaded only change the values. 
     // Clean DataSource filter before setting new values 
     tagObj.dataSource.filter({}); 
     tagObj.value(tagIds); 
     console.log(tagIds); 
     console.log(tagObj.value()); 
    } 
} 

你JSFiddle在這裏修改:http://jsfiddle.net/OnaBai/AgV52/2/

+0

感謝這個工程。但仍然看起來像是劍道的一部分。 – Ruchan

+0

與KendoUI如何過濾已選擇的選項不再顯示它們有關。 – OnaBai

+0

依然沒有從劍道我想,今天還是遇到這個問題。我以爲我忘了把我的代碼放在一些東西或錯誤的地方。結果我需要清空過濾器。謝謝 –