这个实现方式有点妖。
原文是用asp.net实现的。我也没有改,因为,json数据的获取在PHP中真是太简单了。拿到数据后json_encode一下就全有了。。
想看的就做个参考吧。我还是觉得妖
这里只是把主要的代码贴出来,不再进行过多的说明,重要的地方以注释的方式进行说明。
XML/HTML代码
- <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>
这里要说明的是,这里只实现了下拉选择项的点击选择,不能使用键盘操作。