在页面刷新后,无法使用javascript在动态形成的表的行中保留值
我的jsp中有以下js代码。刷新页面后,我无法保留下面的文本框值。你知道如何保留这些价值观吗? 我在单击html按钮时调用这个js函数,以便它动态地将行添加到表中在页面刷新后,无法使用javascript在动态形成的表的行中保留值,javascript,html,database,jsp,servlets,Javascript,Html,Database,Jsp,Servlets,我的jsp中有以下js代码。刷新页面后,我无法保留下面的文本框值。你知道如何保留这些价值观吗? 我在单击html按钮时调用这个js函数,以便它动态地将行添加到表中 <script> function addRow(tableID) { if(validateForm()==true){ document.getElementById('cruisedowntime2').style.display = "block";
<script>
function addRow(tableID) {
if(validateForm()==true){
document.getElementById('cruisedowntime2').style.display = "block";
var table = document.getElementById(tableID);
var rowCount = table.rows.length;
var row = table.insertRow(rowCount);
/* var cell1 = row.insertCell(0);
var element1 = document.createElement("input");
element1.type = "checkbox";
element1.name = "chkbox[]";
element1.defaultChecked="true";
cell1.appendChild(element1);*/
var cell0 = row.insertCell(0);
var element0=document.createElement("select");
element0.name="cruiselinedropdown";
var dropdownlist1=document.getElementById("droplist1");
var defaultselected=dropdownlist1.options[dropdownlist1.selectedIndex].value;
//window.location.replace("http://localhost:8085/Bridge_Downtime_Utility/Servlet?var="+defaultselected);
<%Map<String, String> map = new HashMap<String,String>();
for (int i = 0; i < crsenamelist.size(); i++) {
map.put(crsenamelist.get(i),crsecodelist.get(i));
}
%>
element0.options.add( new Option(defaultselected,defaultselected,true,true) );
element0.options.add( new Option("--","") );
<%
for(Map.Entry m:map.entrySet()){ %>
element0.options.add( new Option("<%=m.getValue()%>","<%=m.getValue()%>") );
cell0.appendChild(element0);<%}%>
var textbox3=document.getElementById('starttime');
var textbox7=document.getElementById('startdate');
var cell2 = row.insertCell(1);
var element2 = document.createElement("input");
element2.title="Date: YYYY-MM-DD";
element2.type = "text";
element2.name = "starttimetextbox";
element2.value=textbox7.value+" "+textbox3.value;
cell2.appendChild(element2);
var textbox5=document.getElementById('endtime');
var textbox9=document.getElementById('enddate');
var cell3 = row.insertCell(2);
var element3 = document.createElement("input");
element3.title="Date: YYYY-MM-DD";
element3.type = "text";
element3.name = "endtimetextbox";
element3.value=textbox9.value+" "+textbox5.value;
cell3.appendChild(element3);
var textbox1=document.getElementById('descrip');
var cell4 = row.insertCell(3);
var element4 = document.createElement("input");
element4.type = "text";
element4.name = "descriptextbox";
if(textbox1.value==''){element4.value="-";}
else
element4.value=textbox1.value;
cell4.appendChild(element4);
//cell4.contenteditable=true;
/* var addRowBox = document.createElement("input");
addRowBox.setAttribute("type", "button");
addRowBox.setAttribute("value", "Edit");
var cell5 = row.insertCell(5);
cell5.appendChild(addRowBox);*/
var deleteRowBox = document.createElement("input");
deleteRowBox.setAttribute("type", "button");
deleteRowBox.setAttribute("value", "X");
deleteRowBox.setAttribute("onclick","SomeDeleteRowFunction(this)");
var cell6 = row.insertCell(4);
cell6.appendChild(deleteRowBox);
}}
</script>
函数addRow(tableID){
如果(validateForm()==true){
document.getElementById('cruisedowntime2').style.display=“block”;
var table=document.getElementById(tableID);
var rowCount=table.rows.length;
var row=table.insertRow(rowCount);
/*var cell1=行插入单元格(0);
var element1=document.createElement(“输入”);
element1.type=“复选框”;
element1.name=“chkbox[]”;
element1.defaultChecked=“true”;
单元格1.附加子元素(元素1)*/
var cell0=行插入单元格(0);
var element0=document.createElement(“选择”);
element0.name=“cruiselinedropdown”;
var dropdownlist1=document.getElementById(“droplist1”);
var defaultselected=dropdownlist1.options[dropdownlist1.selectedIndex]。值;
//window.location.replace(“http://localhost:8085/Bridge_Downtime_Utility/Servlet?var=“+默认选择);
element0.options.add(新选项(defaultselected,defaultselected,true,true));
element0.options.add(新选项(“-”,”);
element0.options.add(新选项(“,”);
cell0.appendChild(element0);
var textbox3=document.getElementById('starttime');
var textbox7=document.getElementById('startdate');
var cell2=行插入单元格(1);
var element2=document.createElement(“输入”);
元素2.title=“日期:YYYY-MM-DD”;
element2.type=“text”;
element2.name=“starttimetextbox”;
element2.value=textbox7.value+“”+textbox3.value;
第2单元。附加子元素(元素2);
var textbox5=document.getElementById('endtime');
var textbox9=document.getElementById('enddate');
var cell3=行插入单元格(2);
var element3=document.createElement(“输入”);
element3.title=“日期:YYYY-MM-DD”;
element3.type=“text”;
element3.name=“endtimetextbox”;
element3.value=textbox9.value+“”+textbox5.value;
第三单元附属物(第三单元);
var textbox1=document.getElementById('descrip');
var cell4=行插入单元格(3);
var element4=document.createElement(“输入”);
element4.type=“text”;
element4.name=“descripptextbox”;
如果(textbox1.value=''){element4.value=“-”;}
其他的
element4.value=textbox1.value;
第四单元附属物(第四单元);
//cell4.contenteditable=true;
/*var addRowBox=document.createElement(“输入”);
setAttribute(“类型”、“按钮”);
setAttribute(“值”、“编辑”);
var cell5=行插入单元格(5);
单元格5.追加子项(addRowBox)*/
var deleteRowBox=document.createElement(“输入”);
setAttribute(“类型”、“按钮”);
setAttribute(“值”、“X”);
setAttribute(“onclick”,“SomeDeleteRowFunction(this)”);
var cell6=行插入单元格(4);
单元格6.appendChild(deleteRowBox);
}}
如果希望数据在页面刷新后保持不变,可以存储数据,然后从本地存储加载数据 要在页面刷新时保留数据,您需要将其保存在某个位置,以便将来(重新加载页面后)访问
- 将其存储在后端的某个位置,然后在页面加载时访问REST服务
- 将其存储在浏览器中的localStorage\sessionStorage中
没有其他方法可以在不实际保存数据的情况下保存数据:)是的,但由于这是一个动态表,因此我认为本地存储将无法使用