1. 程式人生 > >EasyUI的combobox載入的內容不能選擇--value有重複值

EasyUI的combobox載入的內容不能選擇--value有重複值

問題如圖:

負責人姓名用一個Combobox 選項是從伺服器獲取的,可以正常獲取json資料並顯示出來,也可以展開列表但就是不可以選擇。但是不能選中就很奇怪了。換了多個瀏覽器都是如此。
這裡寫圖片描述

分析:

網上有很多個說法,有的說跟瀏覽器相容有關的,有的說跟easyUI不同版本對下拉框的多次渲染有關的,但是這些都有不是最根本的原因,最根本的原因是value有重複值。

第一步:

上面的負責人姓名是從使用者管理裡面的使用者姓名拿的資料,怎麼拿到的呢?看下面。

//迴圈,向變數裡新增資料
                for (var i = 0; i < data.length; i++) {
                    data1.push({ "id"
: data[i].Userid, "text": data[i].Username }); //傳入username繫結userid } //在下拉框中載入變數中的資料 $('#userName').combobox("loadData", data1); //編輯彈出框中載入userName

第二步:

因為我拿到的userName和Userid是繫結在一起的,所以顯示的時候顯示的時候如圖所示是userName,但是後臺傳的值其實都是userID。

這裡寫圖片描述

第三步:

大家應該可以看出問題了,第一次選的張三這個username對應了兩個userID,所以往後臺的傳的時候username對應的value值重複,不能確定要傳的userID,所以就出現了下拉框不能選中的情況。

解決辦法:

1.一開始就限定username不能重複。
2.載入到下拉框的時候把所有的userName(兩個張三)都載入進去,不需要distinct去重。