火狐谷歌怎么用JS实现按回车实现tab功能 各位大侠~~火狐谷歌怎么用JS实现按回车实现tab功能?网上一般都是支持IE的感谢啊~~ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 其实都keydown事件只是ie用window.event.keyCodeff用e.which 以前也试过 按回车键可以触发事件没问题 但就是不能实现tab的效果 借楼主的光同问 哈 ff的e.which是可以获得按键码,但怎么改变呢IE的window.event.keycode可以,但ff这个真心不可以啊...难道是我写错了??应该不会吧?e.which = 9 ???这样写有问题? function SetKeyDown(form){var is=form.getElementsByTagName('input');for(var i=0;i<is.length;i++){if(is[i].type=='text'||is[i].type=='password'){if(window.event)is[i].onkeydown=function(){if(event.keyCode==13)event.keyCode=9;};else is[i].onkeydown=function(e){if(e.keyCode==13){e.preventDefault();for(var i=0;i<this.form.elements.length;i++)if(this==this.form.elements[i]){this.form.elements[i+1].focus();break;}}};}}}SetKeyDown(document.forms[0]); 主要就是tabIndex的使用 按顺序获取焦点,不想获取焦点的设置为-1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>回车切换焦点,兼容FF</title><script type="text/javascript"> document.onkeydown=function(event){ var e=event||window.event; var keyCode=e.keyCode||e.which;//e.which 兼容FF var target=e.srcElement||e.target; if (keyCode ==13) { var tabindex=target.tabIndex+1; if( tabindex==6) tabindex=1; document.getElementById('elem'+tabindex).focus(); } }</script></head><body><form><input type="text" tabindex="1" id="elem1" /><input type="text" value="readonly" readonly="readonly" tabindex="-1" /><input type="button" value="click" tabindex="2" id="elem2" /><input type="text" tabindex="3" id="elem3" /><select tabindex="4" id="elem4" > <option value="1">select</option> <option value="2">select2</option></select><input type="button" value="submit" tabindex="5" id="elem5" /></form></body></html> <!doctype html><html> <head> <title>Test</title> </head> <body> <form id="myform"> <input type="text" id="elem1" /> <input type="text" value="readonly" readonly="readonly" tabIndex="-1" /> <input type="button" value="click" id="elem2" /> <input type="text" id="elem3" /> <select id="elem4" > <option value="1">select</option> <option value="2">select2</option> </select> <input type="button" value="submit" id="elem5" /> </form> <script> var form = document.getElementById("myform"), elems = form.getElementsByTagName("*"), controls = []; for(var i = 0, len = elems.length; i < len; i++){ if(elems[i].tabIndex !== -1 && elems[i].nodeName !== "OPTION"){ controls.push(elems[i]); } } function indexOf(arr, value){ var ret = -1; for(var i = 0, len = arr.length; i < len; i++){ if(value === arr[i]){ ret = i; break; } } return ret; } form.onkeyup = function(event){ var e = event || window.event, target = e.target || e.srcElement; if(e.keyCode === 13){ var index = indexOf(controls, target), nextIndex = index + 1 < controls.length ? index + 1 : 0; console.log(controls[nextIndex]); controls[nextIndex].focus(); return false; } } </script> </body></html> 感谢各位的帮助,虽然没用上大家的,但也谢谢了我找了好久也算发现似乎真不能直接实现类似 window.event.keyCode = 9这样功能的方法那就只能用模拟了,我是想做成一个通用方法,以后想用直接调用就可以了.独乐乐不如众乐乐,我也发下我写的当作汇报大家了//按回车实现tab功能 $(".enterTab").keydown(function (e) { var item = $(this); if (e.which == 13) { try { if (window.event) {//ie window.event.keyCode = 0; window.event.returnValue = false; } else {//firefox return false; } } catch (ex) { } finally { var i = 0; $(".enterTab").each(function (index, itemTemp) { if (item.attr("name") == $(this).attr("name")) { if (index == ($(".enterTab").length - 1)) { $(":submit").submit(); } else { $(".enterTab:eq(" + (index + 1) + ")").focus(); } } }) } } });虽然可能性能上或者什么会有些什么问题,但胜在通用,需要时只需要在需要的控件上加一个class就解决了,但这个也会有些小bug,就不详说啦~~哈哈 怎么点击按钮复制文字? 急用 ext API中缺少属性 如何动态的获得name相同的值 js 日期转换 js文件在ie下没起作用是怎么回事 textArea 行输入字符限制的问题 javascript的'和"可以用什么替代 ◆2003年9月27日(15:00)12位MVP齐聚CSDN总部!(现场文字直播)◆ 难题!期望速解! 着个特效是为了我爱的人-----娜娜 jquery 怎么获取radio的索引值`` Jquery如何在iframe父窗体中调用子窗体的函数
只是ie用window.event.keyCode
ff用e.which
ff的e.which是可以获得按键码,但怎么改变呢
IE的window.event.keycode可以,但ff这个真心不可以啊...难道是我写错了??应该不会吧?e.which = 9 ???这样写有问题?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>回车切换焦点,兼容FF</title><script type="text/javascript"> document.onkeydown=function(event){ var e=event||window.event; var keyCode=e.keyCode||e.which;//e.which 兼容FF var target=e.srcElement||e.target; if (keyCode ==13) { var tabindex=target.tabIndex+1; if( tabindex==6) tabindex=1; document.getElementById('elem'+tabindex).focus(); } }</script></head><body><form><input type="text" tabindex="1" id="elem1" /><input type="text" value="readonly" readonly="readonly" tabindex="-1" /><input type="button" value="click" tabindex="2" id="elem2" /><input type="text" tabindex="3" id="elem3" /><select tabindex="4" id="elem4" > <option value="1">select</option> <option value="2">select2</option></select><input type="button" value="submit" tabindex="5" id="elem5" /></form></body></html>
<html>
<head>
<title>Test</title>
</head>
<body>
<form id="myform">
<input type="text" id="elem1" />
<input type="text" value="readonly" readonly="readonly" tabIndex="-1" />
<input type="button" value="click" id="elem2" />
<input type="text" id="elem3" />
<select id="elem4" >
<option value="1">select</option>
<option value="2">select2</option>
</select>
<input type="button" value="submit" id="elem5" />
</form>
<script>
var form = document.getElementById("myform"),
elems = form.getElementsByTagName("*"),
controls = [];
for(var i = 0, len = elems.length; i < len; i++){
if(elems[i].tabIndex !== -1 && elems[i].nodeName !== "OPTION"){
controls.push(elems[i]);
}
}
function indexOf(arr, value){
var ret = -1;
for(var i = 0, len = arr.length; i < len; i++){
if(value === arr[i]){
ret = i;
break;
}
}
return ret;
}
form.onkeyup = function(event){
var e = event || window.event,
target = e.target || e.srcElement;
if(e.keyCode === 13){
var index = indexOf(controls, target),
nextIndex = index + 1 < controls.length ? index + 1 : 0;
console.log(controls[nextIndex]);
controls[nextIndex].focus();
return false;
}
}
</script>
</body>
</html>
//按回车实现tab功能
$(".enterTab").keydown(function (e) {
var item = $(this);
if (e.which == 13) {
try {
if (window.event) {//ie
window.event.keyCode = 0;
window.event.returnValue = false;
}
else {//firefox
return false;
}
}
catch (ex) { }
finally {
var i = 0;
$(".enterTab").each(function (index, itemTemp) {
if (item.attr("name") == $(this).attr("name")) {
if (index == ($(".enterTab").length - 1)) {
$(":submit").submit();
}
else {
$(".enterTab:eq(" + (index + 1) + ")").focus();
}
}
})
}
}
});
虽然可能性能上或者什么会有些什么问题,但胜在通用,需要时只需要在需要的控件上加一个class就解决了,但这个也会有些小bug,就不详说啦~~哈哈