私は、大量の入力を行うために使用されるいくつかの Web ページに取り組んでいます。インターフェイスには多くのコントロールがあり、ユーザーの習慣により、キー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