我必须在HTML页面中动态显示复选框,并从数据库中获取它们的值。
我使用的技巧是在java中创建整个表格HTML然后使用AJAX我这样做
var div = document.getElementByID("div").innerHTML = htmlCode;
但问题是
在htmlCode变量中,html就像
<table width="100%">
<tr>
<td width="50%">......
但是当我检查div.innerHTML时,它显示为
<TABLE width="100%">
<TBODY>
<TR>
<TD width="50%">
<?xml:namespace prefix = ....
为什么它们变成大写,为什么添加了xml:namaesapce前缀?
这会导致问题,因为表格未正确显示。
如果不使用innerHTML,还有其他更好的方法吗?
生成表的代码是
String html = "<table width=\"100%\">";
for (Iterator it = lookupList.iterator (); it.hasNext ();)
{
HashTree lookupElement = (HashTree) it.next ();
String code = lookupElement.getChildTagValue ("CODE");
String text = lookupElement.getChildTagValue ("TEXT");
String labelText = "";
if(indexLookupElement == 0)
labelText = "First Checkbox label";
html = html + "<tr><td width=\"50%\" >" +
+
"<input type=\"checkbox\" id=\"item" + code + "\" />" +
"<html:label " +
"id=\"_Description\"" +
"name=\"_Description\"" +
">" + text +
"</html:label>" +
"<td width=\"50%\" >" +
"</td></tr>";
indexLookupElement += 1;
}
html = html + "</table>";
谢谢,
艾登
答案 0 :(得分:1)
创建HTML代码服务器端并不是最佳做法。如果您确定文档中有表格,最好将其作为文档结构的一部分,并仅提供Java代码中的变量。即使表是有条件的,您也可以考虑用变量隐藏/取消隐藏它。我相信如果网页的HTML代码正确,这种方法可以解决您的问题。
更新
像这样测试:
html = html + "<tr><td width=\"50%\"><input type=\"checkbox\" id=\"item" + code + "\" /><label id=\"_Description\" name=\"_Description\">" + text + "</label></td><td width=\"50%\"></td></tr>";
在您的代码中,您丢失了TD结束标记,并进行了一些更改。看看这是否能解决您的问题。