EasyUI的combobox載入的內容不能選擇--value有重複值
阿新 • • 發佈:2019-01-07
問題如圖:
負責人姓名用一個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去重。