问题描述
|
我在.asp页上动态创建复选框时遇到了一些麻烦。我在表格的单元格内部使用以下代码(注意-rsMaint是一个记录集):
<%
if not rsMaint.EOF then
rsMaint.moveFirst
index = 1
%>
<%
do while not rsMaint.EOF
%>
<%
Response.Write(CreateLabel(rsMaint.fields.getValue(\"name\"),0) )
Response.Write(\"<INPUT type=\"\"checkbox\"\" id=cb\" & index & \" value=\" & rsMaint.fields.getValue(\"template_id\") & \">\")
rsMaint.moveNext()
index = index + 1
loop
%>
这可以找到创建我的复选框的方法,并且我可以查看源代码并看到它们具有id的cb1,cb2,cb3等。如果尝试执行此操作,我将得到一个对象不存在错误:
if cb1.getChecked() = true Then
...
end if
解决方法
<%
rsMaint.moveFirst
index = 1
While Not rsMaint.EOF
val = rsMaint.fields.getValue(\"template_id\")
Response.Write(CreateLabel(rsMaint.fields.getValue(\"name\"),0) )
Response.Write(\"<INPUT type=\"\"checkbox\"\" id=\"\"\"cb\" & index & \"\"\"\" & _
\" name=\"\"\"checkbox_\" & index & \"\"\"\" & _
\" value=\"\"\" & Server.HTMLEncode(val) & \"\"\">\")
rsMaint.moveNext()
index = index + 1
Wend
%>
稍后,当用户发回表格时,您可以
<%
If Request(\"checkbox_1\") > \"\" Then
\'\'# ...
End If
%>
请注意,您绝不能输出没有先对其进行HTML编码的数据值。