欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

使用Jquery来实现可以输入值的下拉选单

程序员文章站 2023-01-23 11:49:59
有几个 重要问题,需要注意的: 下拉选单的触发方式、下拉选单的内容如何绘出,选单事件触发的抓取、抓取到选择事件後值要存在哪里 上述问题解决後,後面 都要用 asp.net 的方式来重新撰写,所以在设...

有几个 重要问题,需要注意的:
下拉选单的触发方式、下拉选单的内容如何绘出,选单事件触发的抓取、抓取到选择事件後值要存在哪里
上述问题解决後,後面 都要用 asp.net 的方式来重新撰写,所以在设计雏型时,需注意其能否应用在 asp.net 上
构思如下:
这我的打算就是设计一个 button 藉由其 onclick 事件来触发,到时会由 jquery 抓取 asp.net 动态产生的选单阵列,来动态产生选单,
产生的选单,要能设定三各事件 mouver mouseout click,前两各 是为了美观,这样 user 才知道 有在动作,click 事件触发後,
将选取到的值储存到 .net 的 server 控件 textbox 中,如此 在 postback 就能把值 传回 server 端 来处理。

代码如下:


<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.min.js" ></script>
<title>使用 jquery 来实现可以输入值的下拉选单(一)</title>
<script type="text/javascript">
$(document).ready(function () {
//动画速度
var speed = 500;
//选单的相关处理事件
$("#ppop p").live("mouseover mouseout click", function (event) {
if (event.type == "mouseover") {
//$(this).addclass(‘highlight');
$(this)[0].style.backgroundcolor = '#e6f5fa';
}
if (event.type == "mouseout") {
//$(this).removeclass("highlight");
$(this)[0].style.backgroundcolor = '#ddffdd';
}
if (event.type == "click") {
var inid = $("#btnddl").get(0).getattribute("inputid");
//alert($(this).html());
$("#" + inid).val($(this).html());
}
});
//动态产生下拉选单的选项,後面 要从 array 中读取产生选单
$("#ppop").append("<p>test1</p>");
$("#ppop").append("<p>test2</p>");
//绑定事件处理
$("#btnddl").click(function (event) {
//取消事件冒泡
event.stoppropagation();
//设置弹出层位置
var offset = $(event.target).offset();
//alert($(event.target).width());
var inid = $(this).get(0).getattribute("inputid");
//依據 input 跟 button 寬度來設定 下拉選單的寬度
$("#ppop")[0].style.width = ($("#" + inid).width() + $(this).width() + 10) + "px";
//单击空白区域隐藏弹出层
$(document).click(function (event) { $("#ppop").hide(speed) });
//设定下拉选单显示的位置
$("#ppop").css({ top: offset.top + $(event.target).height() + 10 + "px", left: offset.right });
//切换弹出层的显示状态
$("#ppop").toggle(speed);
});
});
</script>
</head>
<body>
<p>
<br /><br /><br />
<input name="txtkey" type="text" maxlength="30" size="30" id="txtkey" style="padding:2px;" /><button id="btnddl" inputid="txtkey" >▼</button>
</p>
<!-- 弹出层 -->
<p id="ppop" style="background-color: #ddffdd; border: solid 1px #000000; position: absolute; display:none;
width: 300px; height: 100px;">
</p>
</body>
</html>


这里面 还有各 想解决的问题,就是要让 ppop 也能动态产生。