<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE> New Document </TITLE> <META NAME="Generator" CONTENT="EditPlus"> <META NAME="Author" CONTENT=""> <META NAME="Keywords" CONTENT=""> <META NAME="Description" CONTENT=""> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <script language="javascript"> //将选择的select元素的值追加到输入框中原来数据的后面 function connectSex(){ var sexTextObj=document.form1.sexText; var sexObj=document.form1.sex; var sexValue=sexObj.options[sexObj.selectedIndex].value; if(sexTextObj.value=="" || sexTextObj.value==null){ sexTextObj.value=sexValue; }else{ sexTextObj.value=sexTextObj.value+"、"+sexValue; } } //目的在于学习如何屏蔽HTML元素原来已经有的事件,建立新的事件 function selectEvent(){ if(event.keyCode==38 ||event.keyCode==40){ //使HTML元素原来默认的事件失效 event.returnValue=false; var selectObj=document.form1.sex; var currentIndex=selectObj.selectedIndex; //如果是上键:只是选中 if(event.keyCode==38 ){ //alert("上键--"+currentIndex); if(currentIndex==0){ return false; }else{ selectObj.options[currentIndex-1].selected=true; return; } } //如果是下键 if(event.keyCode==40 ){ //alert("下键--"+currentIndex+"selectObj.options.length:"+selectObj.options.length); if(currentIndex==selectObj.options.length-1){ return false; }else{ selectObj.options[1].selected=true; return ; } } } //如果是空格键,则把选中的内容添加文本域中 if(event.keyCode==32){ connectSex(); } } </script> </HEAD> <BODY> <form method="post" name="form1" action=""> <input type="text" name="text1" value="text1"/> <input type="text" name="text2" value="text2"/><br/> <select name="sex" onChange="connectSex()" onkeydown="selectEvent()"> <option value="girl">女</option> <option value="boy">男</option> </select> <!--Tab键会自动跳过hidden类的控件--> <input type="hidden" name="text3" value="text3"> <input type="text" name="sexText" value=""/> </form> </BODY> </HTML>?
select 元素的onmousewheel事件即滚轮转时的事件会改变当前选项,并触发onChange事件,通过onmousewheel="return false;" 来屏蔽此事件.
onkeydown是给select 元素加快捷键,上、下键改变当前的选项,按回车将select的值插入一文本域,代码如下。
<select name="commonNativeLanguage" style="width:150px" onkeydown="selectEvent('commonNativeLanguage')" onChange="connectTextLangueCommonNative()" onmousewheel="return false;">