下拉列表怎么实现可编辑?

时间:2022-03-26 10:11:38
我想实现的是:想用编辑就编辑,想用下拉就用下拉列表,大侠们,怎么实现啊,有实例就最好了

10 个解决方案

#1


用input + button自己写个可编辑的下拉控件!

#2


说半天就是不会喽,其实我的需求很简单,不要求改动下拉列表的东西,只是希望当下拉列表中没有需要的值的时候就自己手工填而已

#3


<form name=form1>
<input type=text name=abc>
<select onchange=document.form1.abc.value=this.options[this.selectedIndex].value]>
<option value="value">text</option>
</select>
</form>

#4


对,就照小云的办法,TEXT里面的内容可以自己填也可以从菜单中选

#5


我也需要这样的控件,关注中

#6


<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>

<body>
<script language="javascript">
function aa() {
     i=document.frmtest.seltest.length;
}
function pp(){
document.frmtest.seltest.options[i]=new Option(ok=(document.frmtest.seltest.options[i])?document.frmtest.seltest.options[i].innerText+String.fromCharCode(event.keyCode):String.fromCharCode(event.keyCode),ok)
document.frmtest.seltest.selectedIndex=i;
}
function edit(){
if(document.frmtest.seltest.options[i]){
  if(event.keyCode==8){
   var str=document.frmtest.seltest.options[i].innerText;
   var len=str.length;
   document.frmtest.seltest.options[i].innerText=str.substring(0,len-1);
   if(document.frmtest.seltest.options[i].innerText=="")
    document.frmtest.seltest.remove(i);
   }
   if(event.keyCode==13)return false;
   if(event.keyCode==32){
   document.frmtest.seltest.options[i].innerText+=" ";
  }
}
}
</script>
<body onload=aa();>
得到的数据:<%=request.form("seltest")%>
<form name=frmtest action=test.asp method="POST">
<select onkeypress=pp() onkeyup="edit()" name="seltest">
<option>测试程序</option>
<option>nanaka</option>
<option>zergman</option>
</select>
<input type=submit>
</form>
</body>
</body>
</html>
焦点在下拉框时候,直接输入内容就会在下拉框中出现~这是你想要的吧~

#7


to 小云 :   这样的话,就出现了两行了,一个是<input type=text name=abc>行,一个是select行了,我的要求是在同一个框里面啊。

#8


你把<input>放在<select>上面就可以了

别人又不知道你是放了两个控件

#9


他想要可以在下拉菜单里直接输入
只能自己做一个新控件了

#10


恩,webassassin(刺客) 说的对,不过要把下拉菜单右边的小三角留出来,可以点到下拉菜单进行选择

#1


用input + button自己写个可编辑的下拉控件!

#2


说半天就是不会喽,其实我的需求很简单,不要求改动下拉列表的东西,只是希望当下拉列表中没有需要的值的时候就自己手工填而已

#3


<form name=form1>
<input type=text name=abc>
<select onchange=document.form1.abc.value=this.options[this.selectedIndex].value]>
<option value="value">text</option>
</select>
</form>

#4


对,就照小云的办法,TEXT里面的内容可以自己填也可以从菜单中选

#5


我也需要这样的控件,关注中

#6


<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>

<body>
<script language="javascript">
function aa() {
     i=document.frmtest.seltest.length;
}
function pp(){
document.frmtest.seltest.options[i]=new Option(ok=(document.frmtest.seltest.options[i])?document.frmtest.seltest.options[i].innerText+String.fromCharCode(event.keyCode):String.fromCharCode(event.keyCode),ok)
document.frmtest.seltest.selectedIndex=i;
}
function edit(){
if(document.frmtest.seltest.options[i]){
  if(event.keyCode==8){
   var str=document.frmtest.seltest.options[i].innerText;
   var len=str.length;
   document.frmtest.seltest.options[i].innerText=str.substring(0,len-1);
   if(document.frmtest.seltest.options[i].innerText=="")
    document.frmtest.seltest.remove(i);
   }
   if(event.keyCode==13)return false;
   if(event.keyCode==32){
   document.frmtest.seltest.options[i].innerText+=" ";
  }
}
}
</script>
<body onload=aa();>
得到的数据:<%=request.form("seltest")%>
<form name=frmtest action=test.asp method="POST">
<select onkeypress=pp() onkeyup="edit()" name="seltest">
<option>测试程序</option>
<option>nanaka</option>
<option>zergman</option>
</select>
<input type=submit>
</form>
</body>
</body>
</html>
焦点在下拉框时候,直接输入内容就会在下拉框中出现~这是你想要的吧~

#7


to 小云 :   这样的话,就出现了两行了,一个是<input type=text name=abc>行,一个是select行了,我的要求是在同一个框里面啊。

#8


你把<input>放在<select>上面就可以了

别人又不知道你是放了两个控件

#9


他想要可以在下拉菜单里直接输入
只能自己做一个新控件了

#10


恩,webassassin(刺客) 说的对,不过要把下拉菜单右边的小三角留出来,可以点到下拉菜单进行选择