0

動的に作成されたテキスト ボックスのリストを持つ ASP.NET 4.5 ページがあります。

asp.panel のデフォルト ボタンを [保存] ボタンに設定しました。

ユーザーがテキスト ボックスへの入力の途中で Enter キーを押すと、フォームは保存されますが、フォーカスはページの上部に戻ります。編集中の最後のテキスト ボックスにフォーカスを戻すにはどうすればよいですか?

4

1 に答える 1

1

javascript/jquery を介してすべてのフォーム要素に onfocus ハンドラーを追加できます。これにより、現在フォーカスされているコントロールの ID が非表示フィールドに保存され、ドキュメントの読み込み時に JavaScript を使用するときにその ID 値が読み取られるため、適切なコントロールにフォーカスを設定できます。

例:

<asp:HiddenField runat="server" ID="hfFocusedControl" />
<script>

$(document).ready(function(){
        var id = $('#hfFocusedControl').val()
        ;
        $('#'+id).focus();
        $('input').focus(saveIdOnFocus);


});
var saveIdOnFocus = function(e){
    var control = $(this)
        , id = control.attr('id')
    ;

    $('#hfFocusedControl').val(id);
}
</script>
于 2013-10-23T21:10:31.360 に答える