用DW用ASP网页里,做列表时,在列表里加入选项,但我还想列表/菜单即可以可以选,也可以手动输入
1个回答
展开全部
我找了好久,终于帮你找到一段效果比较不错的代码(下拉框的),你参考着用吧:
<SCRIPT LANGUAGE="JavaScript">
<!--
//定义 select 原值
var oldValue,oldText;
//select下拉框的onkeydown事件,修改下拉框的值
function catch_keydown(sel){
switch(event.keyCode) {
case 13: //回车键
event.returnValue = false;
break;
case 27: //Esc键
sel.options[sel.selectedIndex].text = oldText;
sel.options[sel.selectedIndex].value = oldValue;
event.returnValue = false;
break;
case 8: //空格健
var s = sel.options[sel.selectedIndex].text;
s = s.substr(0,s.length-1);
if (sel.options[sel.selectedIndex].value==sel.options[sel.selectedIndex].text){
sel.options[sel.selectedIndex].value=s;
sel.options[sel.selectedIndex].text=s;
}
event.returnValue = false;
break;
}
if (!event.returnValue && sel.onchange)
sel.onchange(sel)
}
//select下拉框的onkeypress事件,修改下拉框的值
function catch_press(sel){
if(sel.selectedIndex>=0){
var s = sel.options[sel.selectedIndex].text + String.fromCharCode(event.keyCode);
if (sel.options[sel.selectedIndex].value==sel.options[sel.selectedIndex].text){
sel.options[sel.selectedIndex].value=s;
sel.options[sel.selectedIndex].text=s;
}
event.returnValue = false;
if (!event.returnValue && sel.onchange)
sel.onchange(sel)
}
}
//select下拉框的onfocus事件,保存下拉框原来的值
function catch_focus(sel) {
oldText = sel.options[sel.selectedIndex].value;
oldValue = sel.options[sel.selectedIndex].value;
}
//-->
</SCRIPT>
</Head>
<Body>
<!--调用--取消输入按esc退出,按回格删除输入的字符>
<select style='width:130px;z-index:-1' name='tmpSel' onkeydown=catch_keydown(this) onkeypress=catch_press(this) onfocus=catch_focus(this)>
<option value=''></option>
<option value='1'>1</option>
<option value='2'>2</option>
</select>
我自己试了一下。好像好不错的样子。希望对你有帮助
<SCRIPT LANGUAGE="JavaScript">
<!--
//定义 select 原值
var oldValue,oldText;
//select下拉框的onkeydown事件,修改下拉框的值
function catch_keydown(sel){
switch(event.keyCode) {
case 13: //回车键
event.returnValue = false;
break;
case 27: //Esc键
sel.options[sel.selectedIndex].text = oldText;
sel.options[sel.selectedIndex].value = oldValue;
event.returnValue = false;
break;
case 8: //空格健
var s = sel.options[sel.selectedIndex].text;
s = s.substr(0,s.length-1);
if (sel.options[sel.selectedIndex].value==sel.options[sel.selectedIndex].text){
sel.options[sel.selectedIndex].value=s;
sel.options[sel.selectedIndex].text=s;
}
event.returnValue = false;
break;
}
if (!event.returnValue && sel.onchange)
sel.onchange(sel)
}
//select下拉框的onkeypress事件,修改下拉框的值
function catch_press(sel){
if(sel.selectedIndex>=0){
var s = sel.options[sel.selectedIndex].text + String.fromCharCode(event.keyCode);
if (sel.options[sel.selectedIndex].value==sel.options[sel.selectedIndex].text){
sel.options[sel.selectedIndex].value=s;
sel.options[sel.selectedIndex].text=s;
}
event.returnValue = false;
if (!event.returnValue && sel.onchange)
sel.onchange(sel)
}
}
//select下拉框的onfocus事件,保存下拉框原来的值
function catch_focus(sel) {
oldText = sel.options[sel.selectedIndex].value;
oldValue = sel.options[sel.selectedIndex].value;
}
//-->
</SCRIPT>
</Head>
<Body>
<!--调用--取消输入按esc退出,按回格删除输入的字符>
<select style='width:130px;z-index:-1' name='tmpSel' onkeydown=catch_keydown(this) onkeypress=catch_press(this) onfocus=catch_focus(this)>
<option value=''></option>
<option value='1'>1</option>
<option value='2'>2</option>
</select>
我自己试了一下。好像好不错的样子。希望对你有帮助
更多追问追答
追问
嗯,我试一下,顺便问你一个问题,这个问题困惑了我好久。我在用DW做asp留言板时,在预览的时候,在文本框里输入留言时,按了回车换行,可以显示跳行。可是在发表后,显示出的留言却没有显示出换行,只是相隔了一个空格.很不解.
追答
试一试这段代码。将你提交的字符串进行过滤后保存到数据库,再读出来的时候就会换行了。
function filt_char(init_string)
dim temp_char
filt_char=init_string
if init_string"" then
temp_char=init_string
temp_char=replace(temp_char,"",">")
temp_char=replace(temp_char,chr(34),"")
temp_char=replace(temp_char,chr(32)," ")
temp_char=replace(temp_char,chr(9)," ")
temp_char=replace(temp_char,chr(39),"'")
temp_char=replace(temp_char,chr(10)+chr(13),"
")
filt_char=temp_char
end if
end function
有一些代码被百度自动替换了。。。郁闷
来自:求助得到的回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询