我已经成功地使下面的脚本在 Firefox 12.0 中运行。 IE 和 Chrome 无法正常工作。假设文本区域 ID 为 #ICCID 和 #MSISDN,则 jQuery 如下所示:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
$(document).ready(function() {
$("#ICCID").focus();
});
var $inp = $('.cls');
$inp.bind('keydown', function(e) {
var key = e.which;
if (key == 9) {
e.preventDefault();
var nxtIdx = $inp.index(this) + 1;
$(".cls:eq(" + nxtIdx + ")").focus();
//Simulate Enter after TAB
var textInput = $("#MSISDN").val();
var lines = textInput .split(/\r|\r\n|\n/);
if (lines > 1) {
$("#MSISDN").on("keypress", function(e) {
if (e.keyCode == 9) {
var input = $(this);
var inputVal = input.val();
setTimeout(function() {
input.val(inputVal.substring(0,inputVal.length) + "\n");
}, 1);
}
});
}
}
if (key == 9) {
e.preventDefault();
var nxtIdx = $inp.index(this) - 1;
$(".cls:eq(" + nxtIdx + ")").focus();
//Simulate Enter after TAB
$("#ICCID").on("keypress", function(e) {
if (e.keyCode == 9) {
var input = $(this);
var inputVal = input.val();
setTimeout(function() {
input.val(inputVal.substring(0,inputVal.length) + "\n");
}, 1);
}
});
}
});
});
</script>
该脚本的想法是通过按键盘上的 TAB 按钮在两个特定文本区域之间切换,加载网页时初始焦点位于第一个文本区域,并在 TAB 操作完成后模拟按下 Enter 按钮。对于此 TAB 键按下事件,必须忽略页面上的所有其他元素。
谁能帮忙解决这个问题吗?
最佳答案
当您第一次绑定(bind) keydown 操作时,我会尝试:
$inp.bind("keydown", function(e)
{
var code = (e.keyCode ? e.keyCode : e.which);
if(code == 9)
{
//DO SOMETHING
}
});
我还会将所有 keypress
更改为 keydown
关于jquery - 需要制作一个在大多数浏览器中工作的 jQuery 脚本(跨浏览器),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10650604/