我正在处理一些用于进行大量输入的网页。界面控件较多,由于用户习惯,按键focus
设置为下一个控件Enter
实际上我正在使用jQuery
像这样实现的经典方法
$('#txtInput1').keypress(
function(event) {
if (event.keyCode == 13) {
$('#txtInput2').focus();
}
});
$('#txtInput2').keypress(
function(event) {
if (event.keyCode == 13) {
$.getJSON('Ajax/getSomeResult.aspx',
{'param': $(this).val() }, function(data) {
if (data['msg'] != "")
$('#txtInput3').focus();
else
$('#txtInput4').focus();
});
}
});
$('#txtInput4').keypress(
function(event) {
if (event.keyCode == 13) {
$('#txtInput5').focus();
}
});
如您所见,每个输入控件都重复了相同的代码结构,除了其中一些在我们需要做额外工作才能确定下一个要跳转到的控件之前
我的问题是:我们如何重构这段代码,以便有一个可以适用于所有页面的解决方案,如果可能的话,很少或没有重复?
请记住,条件
$.getJSON(
'Ajax/getSomeResult.aspx',
{'param': $(this).val() },
function(data) {
if (data['msg'] != "")
$('#txtInput3').focus();
else
$('#txtInput4').focus();
});
只是一个例子;它可以是任何可以让我们选择下一个需要focus