欢迎光临

木子屋

标题: 修改资料时设定下拉菜单某个值为选中状态

作者: dnawo

日期: 2007-10-11 03:15 PM

分类: 脚本语言

内容: 在修改资料时，为方便用户操作，必须将先前选取的下拉菜单的某个值设定为选中状态，通常我们用ASP书写如下代码：
复制内容到剪贴板 程序代码<select name="select">
<option value="1111" <% If ors("field")="1111" Then Response.Write("selected") %>>111</option>
<option value="2222" <% If ors("field")="2222" Then Response.Write("selected") %>>222</option>
<option value="333" <% If ors("field")="333" Then Response.Write("selected") %>>333</option>
<option value="444" <% If ors("field")="444" Then Response.Write("selected") %>>444</option>
</select>
碰上下拉菜单项非常多时，书写起来非常浪费时间，下边写了个JS函数用来实现转换，只需将原来的<select>复制粘贴到页面begin和end之间，点击转换按钮，页面即显示转换后的<select>，再复制粘贴回去即可：
HTML代码
//==================================================
//函数名：toAsp
//作 用：对下拉菜单代码进行转换
//参 数：field ------数据库字段
//参 数：rs ------RecordSet对象
//返回值：在页面显示转换后的代码,复制即可使用
//说 明：必须将下拉菜单放在begin和end之间
//==================================================
function toAsp(field,rs){
var str = "";
var obj = document.forms[0].elements[0];
str = "&\lt;select name=\"" + obj.name + "\">"
for(var i=0;i>" + obj.options[i].text + "&\lt;/option>";
}
str += "&\lt;/select>";
document.write(str);
}
111
222
333
444

[Ctrl+A 全部选择 提示：你可先修改部分代码，再按运行]
想看看动网是怎么解决这个问题的，打开mymodify.asp找了他的转换函数：
复制内容到剪贴板 程序代码<%
Function Chk_select(str1,str2)
Dim k
str2=Split(str2,",")
If IsEmpty(str1) or str1="" Then chk_select="<option value='' selected>...</option>"
For k=0 to ubound(str2)
chk_select=chk_select+"<option value="+str2(k)
If str2(k)=str1 Then chk_select=chk_select+" selected "
chk_select=chk_select+" >"+str2(k)+"</option>"
Next
End Function
%>
其中第一个参数为要选定的值，第二个参数为全部<select>项的值组成的字符串，各项值以逗号隔开，如：Chk_select("2222","1111,2222,3333,4444")。

+ 查看当前日志评论 (0)

登录

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 0.611 ms

返回

标题: 修改资料时设定下拉菜单某个值为选中状态

你没有权限发表评论

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 0.611 ms

返回

暂无评论

返回

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 0.643 ms

返回