我有一个客户希望Enter / Return键执行与表单字段上的tab键相同的功能。
到目前为止,这是我的代码。它不会起作用。谁知道为什么?
<script>
$('input, select').live('keydown', function(e) {
if (e.keyCode === 13) {
if (e.shiftKey) {
var focusable = form.find('input,a,select,button,textarea').filter(':visible');
focusable.eq(focusable.index(this)-1).focus();
}
else {
var focusable = form.find('input,a,select,button,textarea').filter(':visible');
focusable.eq(focusable.index(this)+1).focus();
return true;
}
}
});
</script>
答案 0 :(得分:2)
preventDefault();
form.find
放在那里,但我没有看到form
设置在任何地方。也许试试$('form')
?我已经设置了一个基本的js fiddle供您查看。这是你想要的功能吗?
$('input, select').on('keydown', function (e) {
if (e.keyCode === 13) {
e.preventDefault();
if (e.shiftKey) {
var focusable = $('form').find('input,a,select,button,textarea').filter(':visible');
focusable.eq(focusable.index(this) - 1).focus();
} else {
var focusable = $('form').find('input,a,select,button,textarea').filter(':visible');
focusable.eq(focusable.index(this) + 1).focus();
return true;
}
}
});
请注意,.live()
已弃用,您只能使用.on()