我有一個窗口,它具有下拉列表和一個HTML表格,其中根據在下拉列表中進行的選擇來填充表格行。一旦表填充完畢,用戶點擊每一行進行選擇並點擊「確定」按鈕。用戶也可以根據需要選擇三行中的兩行。爲一個表中的選定行設置唯一ID以存儲在localStorage中
$('.ok').bind('click', function() {
if (somecondition) {
//some process
}
$("#selectedTblDiv tr:selected").each(function(index,row) {
fnMatch($(row).find(("td:first").html()));
localStorage.setItem("test-" + index, $(row).find(("td:first").html()));
});
fnDialogClose();
});
這裏我已存儲的每一行的第一個元素中的localStorage具有唯一ID:一旦「OK」按鈕被點擊我使用下面的代碼,並且還預成型件的一些動作如下存儲在localStorage的選擇的行。雖然我在檢索頁面刷新同我做了以下過程:
function fnDisplay() {
//some code to open dialog
for (var i = 0; i < localStorage.length; i++) {
//some code and process
var $select = $("#list_button");
for (var j = 0; j < localStorage.length; j++) {
if (localStorage.getItem("test-" + j)){
var t = localStorage.getItem("test-" + j);
if (t == prevIDs) {
$("#list_button > option").each(function() {
if (this.text == prevIDs) {
$(this).remove();
}
});
$('<option>').text(prevIDs).attr("disabled", true).appendTo($select);
}
}
}
}
}
這裏基本上fnDisplay()打開一個窗口,一些過程下拉列表中填充。並從列表中選擇用戶選擇,並將詳細信息填充到HTML表格中。「確定」選項可執行一些操作,並將用戶選擇的表格存儲在localStorage中。
再次,當用戶打開窗口時,下拉菜單中的項目被禁用,這些項目先前已從表中選擇。但是沒有從下拉菜單中選擇的項目仍然可以選擇。
我的問題是:
下拉列表中有
10023
10024
10025
用戶選擇10023和10024,以便HTML表格填入如下:
HTML表格
vehID Name Place Summary
----- ---- ----- -------
10023 car blore 4-wheeler
10024 bike pune 2 wheeler
現在用戶選擇行10023和10024並點擊「確定」。 現在窗口關閉並重新打開,所以我的下拉看起來followss
10023 //disabled
10024 //disabled
10025 //enabled
和我的HTML表是空的。
現在用戶有條款選擇未選擇的值。即10025 現在選擇10025並填充HTML,並單擊相同的行選擇和「確定」按鈕。 現在,當用戶重新加載窗口,我希望所有選項在下拉菜單中被禁用,因爲所有選項都被選中。但由於localStorage基於行選擇,因此在選擇新值時覆蓋存儲的值。儘管我已經給出了每行的唯一ID,但是
localStorage.setItem("test-"+index,somethin);
當選擇新行時,索引的值再次設置爲0。所以,我的下拉列表看起來像這樣
10023 //enabled
10024 //disabled
10025 //disabled
因此,這裏是10025上覆蓋10023.如何通過提供一個唯一的ID給每個解決這個問題?
你的第一JS碼塊被破壞(缺少')後''」 .ok''並且也是'});'在端部)和非常雜亂。請使用http://jsbeautifier.org/使這更容易閱讀 – CodingIntrigue 2014-09-03 08:43:08
是的所有都是輸入錯誤。對不起,現在已完成更改。 – user3201640 2014-09-03 08:45:53
您是否意識到您發佈的代碼充滿了語法錯誤?一個工作演示例如[jsfiddle](http://jsfiddle.net)將有助於那些試圖幫助你。 – 2014-09-03 08:50:25