0

誰かがこれで私を助けることができれば、私は永遠に感謝します.

基本的に、フォーカス機能は、ユーザーがダイアログの 3 つのフィールドの最後以外で Enter キーを押すと、それがタブとして機能するようにすることになっています。LAST フィールドで Enter キーを押すと、フォームが送信されます。後者の機能は機能しますが、タブ移動は機能しません。

誰でも理由を知っていますか?. コードのブロック全体を投稿しませんでしたが、これで十分なデータが得られるはずです。event.target を間違って使用していますか?

$('#dialog-add-items').dialog({
        autoOpen: false,
        resizable: false,
        width:500,
        position:['center',80],
        modal: true,
        focus: function() {
            $(':input:last', this).unbind('keyup').keyup(function(event) {
                if (event.keyCode == 13) {
                    $('.ui-dialog-buttonpane button:first').click();
                }
            });
            $(':input:not(:last)', this).unbind('keyup').keyup(function(event){
                if(event.keyCode == 13){
                    name=event.target;
                    $(name).next('input').focus();
                }
            });
        },...
4

2 に答える 2

0

私が推測しなければならなかったならば、私はそれ$('.ui-dialog-buttonpane button:first').click();が犯人であると言うでしょう。ボタンに次のようなIDと参照を付けてみてください。

$('#dialog-add-items').dialog({
        autoOpen: false,
        resizable: false,
        width:500,
        position:['center',80],
        modal: true,
        focus: function() {
            $(':input:last', this).unbind('keyup').keyup(function(event) {
                if (event.keyCode == 13) {
                    $('#okbutton').click();
                }
            });
            $(':input:not(:last)', this).unbind('keyup').keyup(function(event){
                if(event.keyCode == 13){
                    name=event.target;
                    $(name).next('input').focus();
                }
            });
        },
        buttons: [{text: 'Ok', id:'okbutton'}],...
于 2012-07-03T18:40:21.543 に答える
0

最終的に、if/else ステートメントを追加して、2 つのフィールドのどちらがフォーカスされているかをテストし、次のフィールドにジャンプしました。面倒で醜いですが、それが私が仕事に取り掛かることができる唯一のものでした.

于 2012-07-04T12:34:21.087 に答える