我的javascript有点问题,希望你能帮忙。
我在这里使用一个示例:http : //www.knowlbase.in/2012/01/traverse-cursor-through-text-box-with.html 在页面上的文本框之间移动。Left 和 Right 效果很好,但上下移动光标对角线向右移动(但是当按下向上键时它确实对角线向上移动,当按下向下键时它对角线向下移动)。
谁能看到我哪里出错了?
编辑 - 添加jsFiddle
这就是我所拥有的:
function arrowKeyPressed() {
$('input').keyup(function (e) {
if (e.which == 39)
$(this).closest('td').next().find('input').focus();
else if (e.which == 37)
$(this).closest('td').prev().find('input').focus();
else if (e.which == 40)
$(this).closest('tr').next().find('td:eq(' + $(this).closest('td').index() + ')').find('input').focus();
else if (e.which == 38)
$(this).closest('tr').prev().find('td:eq(' + $(this).closest('td').index() + ')').find('input').focus();
});
};
这就是我添加文本框属性的方式(所有文本框都是以编程方式创建的):
tb.Attributes.Add("onkeyup", "arrowKeyPressed()");
这是生成的 HTML 的样子(这只是一个文本框;所有其他文本框都是相同的,除了选项卡索引):
<input name="ctl00$MainContent$addPrices$Textbox101"
type="text"id="ctl00_MainContent_addPrices_Textbox101" tabindex="13"
onblur="validateText('ctl00_MainContent_addPrices_Textbox101',
'ctl00_MainContent_addPrices_AddQuote', 'ctl00_MainContent_addPrices_msgLbl')"
style="width:60px;">
有任何想法吗?
谢谢!