52,797
社区成员
发帖
与我相关
我的任务
分享
//文本框按键抬起
var ss = document.getElementById("search_suggest");
ss.onkeyup=checkKeyCode; //此处对search_suggest添加onkeyup事件,问题还是没有解决
function checkKeyCode()
{
var ie = (document.all)? true:false
if (ie){
var keyCode=event.keyCode
if (keyCode==40||keyCode==38){ //下上
var isUp=false
if(keyCode==40) isUp=true ;
chageSelection(isUp);
}else if (keyCode==13){//回车
outSelection(selectedIndex);
}else{
//checkAndShow();
}
}
}
function chageSelection(isUp)
{
if (ss.style.display=='none'){
ss.style.display='';
}else{
if(isUp)
selectedIndex++
else
selectedIndex--
}
var maxIndex = ss.children.length-1;
if (selectedIndex < 0){selectedIndex=0}
if (selectedIndex > maxIndex) {selectedIndex = 0}
for (var i = 0;i <= maxIndex ; i++)
{
if (i==selectedIndex){
ss.children[i].className="sman_selectedStyle";
objInput.value = ss.children[Index].innerText; //和onclick事件冲突问题,在文本框内回车时取消默认提交表单动作,这个思路是对的,不过我在使用上面的方法时没有在文本框回车取消提交表单动作, 不过此处我偷了个懒,在键盘上下键移动的时候,我就把选择的值放到文本框内了,这样回车就直接提交,因为这个是查询,直接回车还更方便了。但能取消提交表单的动作,就更好了,不知道该怎么弄?
}else{
ss.children[i].className="";
}
}
}
<form method='get'>
输入回车不提交:<input type="text" onkeydown="KeyUp(event)"/><br/>
输入回车提交:<input type="text"/><br/>
<input type="submit" value="提交"/>
</form>
<script>
function KeyUp(e){
if(e.keyCode!=13)return;
if(document.all){
e.keyCode=0;
e.returnValue=false;
}
else e.preventDefault();
}
</script>
//=================在文本框内回车时取消默认提交表单动作,如果是w3c浏览器使用 e.preventDefault();,e为接受事件的变量
event.keyCode=0;
event.returnValue=false;
function checkKeyCode()
{
var ie = (document.all)? true:false
if (ie){
var keyCode=event.keyCode
if (keyCode==40||keyCode==38){ //下上
var isUp=false
if(keyCode==40) isUp=true ;
chageSelection(isUp);
}else if (keyCode==13){//回车
outSelection(selectedIndex);
//=================在文本框内回车时取消默认提交表单动作,如果是w3c浏览器使用 e.preventDefault();,e为接受事件的变量
event.keyCode=0;
event.returnValue=false;
}else{
//checkAndShow();
}
}
}