下拉菜单问题!急!今日必须解决!马上结帐!

vvfish119 2004-04-09 05:06:22
如何利用javascript实现以下功能:
有一下拉菜单,选项为1000-9999,当用户键入1956时,下拉框中1956被选中,就好像delphi、pb中下拉菜单一样,用户键入那个选项,下拉框就自动跳到并选中该选项,如何实现啊?着急啊!大虾救命!
...全文
53 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
vvfish119 2004-04-10
只是举例子说是1000-9999嘛,再说我自己都解决了,默认的keypress事件也可以让它不用嘛,代码如下:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>
<script language="javascript">
x="";
str="1111111111";
function aa()
{ if (event.keyCode==27){
x="";
document.f1.s1.options[0].text="";
f1.s1.options[0].selected=true;
}
if (isNaN(parseInt(String.fromCharCode(event.keyCode)))==false){
if (x.length>=14){
x=String.fromCharCode(event.keyCode);
event.returnValue = false;}
else {
x=x+String.fromCharCode(event.keyCode);
event.returnValue = false;}
}
if (x.length<=str.length){
if(x==str.slice(0,x.length)){
document.f1.s1.options[0].text=x;}}
else{document.f1.s1.options[0].text=x;}
x=f1.s1.options[0].text;
if (x.length==14){
for (n=1;n<f1.s1.length;n++){
if (f1.s1.options[n].text==x){
f1.s1.options[n].selected=true;
document.f1.s1.options[0].text="";}
}
if (f1.s1.options[0].selected==true){
alert("输入错误!");
document.f1.s1.options[0].text="";}
}
}
</script>
<body onLoad="f1.s1.focus();">
<form name="f1">
<select name="s1" onkeydown="aa();">
<option selected></option>
<script language="javascript">
for (i=1;i<10;i++){
document.write("<option>1111111111000"+i+"</option>")}
for (i=10;i<100;i++){
document.write("<option>111111111100"+i+"</option>")}
for (i=100;i<1000;i++){
document.write("<option>11111111110"+i+"</option>")}
</script>
</select>
</form>
</body>
</html>
回复
JK_10000 2004-04-09
不过,
想输入一个1000-9999的数值
却采用下框(而不用input)
真的有点夸张啊!
回复
JK_10000 2004-04-09
select己经有默认的keypress事件,
就是轮流选择以所输字符打头的选项.
现在楼主的要求似乎与这个大多数人已经认同的情形相悖!

不可以因为某个使用者的想法
破坏其他更多使用者的习惯
回复
51windows 2004-04-09
http://www.51windows.net/hw/asp/jsview.asp?id=318
回复
相关推荐
发帖
JavaScript
创建于2007-09-28

8.5w+

社区成员

Web 开发 JavaScript
申请成为版主
帖子事件
创建了帖子
2004-04-09 05:06
社区公告
暂无公告