我想將字符串數組從服務器轉換爲客戶端字符串,不使用JSON或外部庫。 服務器端將String[] xArray = new String[] { "1", "2", "3" }
轉換爲"1, 2, 3"
以進行客戶端呈現。 以下JavaScript函數負責解析服務器字符串並將複選框與數組值進行比較。匹配時,必須檢查通訊記錄複選框。Java String to JavaScript String Array複選框檢查
function loadCheckBoxes() {
var ids = '<%= request.getSession().getAttribute("idsFromServer") %>';
if (ids != null && ids !== '') {
var idsArray = String.valueOf(ids).indexOf(',') == -1 ? [ids] : ids.split(',');
var checkboxes = document.getElementsByClassName('gridIds');
for (var i = 0; i < checkboxes.length; i++) {
var index = idsArray.indexOf(checkboxes[i].value);
if (index >= 0) {
var foundId = idsArray[index];
if (checkboxes[i].value == foundId) {
checkboxes[i].checked = true;
}
}
}
}
}
這是測試執行的JSFiddle。
預期結果:拆分我的數組後,必須檢查對應的複選框。
你代碼示例d從鏈接JSFiddle iffers ...在您的文章中的代碼很好:http://jsfiddle.net/mjvLd/16/ – mellamokb 2013-03-11 16:30:49
@mellamokb小提琴實際上不起作用。請檢查評論。對於不工作的解決方案,它應該檢查「9」和「133」複選框。 – axcdnt 2013-03-11 16:32:25
不,我的意思是功能不同。 JSFiddle代碼中存在一個不存在於發佈代碼中的錯誤。在JSFiddle中,使用'ids [index]'返回字符串的索引,而不是拆分數組。但是在上面的代碼示例中,這是正確的,因爲您將拆分數組存儲在單獨的變量「idsArray」中。如果您要提供演示,則需要使用相同的代碼。 – mellamokb 2013-03-11 16:33:00