您的位置:首页 > Web前端 > JavaScript

以JSon来实现TextBox可选择可输入

2009-04-19 20:19 344 查看
SOURCE:/article/5328466.html

以JSon来实现TextBox可选择可输入
这里只是把主要的代码贴出来,不再进行过多的说明,重要的地方以注释的方式进行说明。
<div id="pubDiv" style="background-position: #9999FF; font-size:12px; display:none; z-index:0; overflow:auto; position:absolute; border:#EDEDED 0px solid;background:#EDEDED;"></div>
<script type="text/javascript" language="javascript">
// 注意下面的等号右面,不能是“<%=BuildJson() %>”,因为JSon整体不能是字符串,同时最后也不能加分号:“;”
var strJson = <%=BuildJson() %>

function ShowBdzDiv() {
var dept = document.getElementById("<%=ddlDeptEdit.ClientID %>").value;
// 构建要下拉选择的内容
var strHtml = "<table border=0px cellpadding=0 cellspacing=0 width=120px><tr>";
for (var key in strJson[dept]) {
strHtml += "<tr><td onclick=SetBdz()>" + key + "</td></tr>";
}
strHtml += "</table>";
var oBdz = document.getElementById("<%=txtBdz.ClientID %>");
var oDiv = document.getElementById("pubDiv");
oDiv.innerHTML = strHtml;

// 设置显示的位置,并显示
oDiv.style.top = "99px";
oDiv.style.left = "100px";
oDiv.style.display = "block";

}
// 当点击选择一个内容时
function SetBdz() {
var oBdz = document.getElementById("<%=txtBdz.ClientID %>");
// 把选择内容设置到TextBox上,并隐藏下拉选择项
oBdz.value = event.srcElement.innerText;
HiddenDiv();
}
// 隐藏下拉选择项
function HiddenDiv() {
var oDiv = document.getElementById("pubDiv");
oDiv.style.display = "none";
}
</script>
。。。
<!--这里只有一点要注意:设置AutoCompleteType="Disabled"-->
<asp:TextBox ID="txtBdz" AutoCompleteType="Disabled" onfocus="ShowBdzDiv()" runat="server"></asp:TextBox>

这里要说明的是,这里只实现了下拉选择项的点击选择,不能使用键盘操作。

本文转自我的163的博客。为了让自己的技术经验有更多的人分享,我会逐步把163的文章转到本博。

posted on 2009-04-18 10:03 常绍新 阅读(1307) 评论(8) 编辑 收藏 网摘



评论:

#1楼 2009-04-18 10:25 | skyjava [未注册用户]

沙发,顶

回复 引用

#2楼 2009-04-18 10:40 | billrobin

编译器错误消息: CS0103: 当前上下文中不存在名称“BuildJson”

源错误:

行 9: <script type="text/javascript" language="javascript">
行 10:
行 11: var strJson = <%=BuildJson() %>
行 12:
行 13: function ShowBdzDiv() {

回复 引用 查看

#3楼 2009-04-18 11:32 | Ryan Gene

页面上能同时存在两个这样的控件吗?看你的代码好像不行吧
回复 引用 查看

#4楼 2009-04-18 11:33 | ︶ㄣ木べ头

BuildJson(),肯定是后台生成Json的函数啊,自己写个咯,这个也问
回复 引用 查看

#5楼 2009-04-18 13:42 | billrobin

下次最好有demo下载,免得菜鸟读了还要自已写。
回复 引用 查看

#6楼 2009-04-18 15:14 | Allie

难道你读了 不写。。。 代码是写出来的 不是看出来的!
回复 引用 查看

#7楼 2009-04-18 18:22 | 林天问

@billrobin
完全的搞笑
回复 引用 查看

#8楼 2009-04-18 21:14 | daconglee

使用Jquery实现的autocomplete功能很强的,不用自己在造轮子了
回复 引用 查看
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐