AGu*_*ald 28 jquery keydown simulate
我在.net页面上有一些文本框,并希望用jQuery实现以下功能:如果用户按下返回,程序应该"好像"他使用了tab键,因此,选择下一个元素.我尝试了以下代码(还有一些代码):
<script type="text/javascript">
jQuery(document).ready(function () {
$('.tb').keypress(function (e) {
if (e.keyCode == 13)
{
$(this).trigger("keydown", [9]);
alert("return pressed");
}
});
});
Run Code Online (Sandbox Code Playgroud)
<asp:TextBox ID="TextBox1" runat="server" CssClass="tb"></asp:TextBox>
<asp:TextBox ID="TextBox2" runat="server" CssClass="tb"></asp:TextBox>
Run Code Online (Sandbox Code Playgroud)
但它只是不起作用!错过了什么,弄错了?
这里有一些我用过的链接
cze*_*asz 18
试试这个:
$('.tg').bind('keypress', function(event) {
if(event.which === 13) {
$(this).next().focus();
}
});
Run Code Online (Sandbox Code Playgroud)
或循环版本:http://jsbin.com/ofexat/2
Mar*_*ijk 12
我创建了一个简单的jQuery插件,可以解决这个问题.它使用jQuery UI的':tabbable'选择器来查找下一个'tabbable'元素并选择它.
用法示例:
// Simulate tab key when enter is pressed
$('.tb').bind('keypress', function(event){
if(event.which === 13){
if(event.shiftKey){
$.tabPrev();
}
else{
$.tabNext();
}
return false;
}
});
Run Code Online (Sandbox Code Playgroud)
小智 9
从多个答案中我结合了完美的解决方案,输入作为输入选项卡并选择并关注下一个输入,选择或文本区域,同时允许输入内部文本区域.
$("input,select").bind("keydown", function (e) {
var keyCode = e.keyCode || e.which;
if(keyCode === 13) {
e.preventDefault();
$('input, select, textarea')
[$('input,select,textarea').index(this)+1].focus();
}
});
Run Code Online (Sandbox Code Playgroud)