0

コードがあります:

<asp:Panel runat="server" DefaultButton="ButtonNext">
    ...a lot of different controls...
    <asp:Button runat="server" ID="ButtonPrev" OnClick="ButtonPrev_OnClick" Text="Prev"/>
    <asp:Button runat="server" ID="ButtonNext" OnClick="ButtonNext_OnClick" Text="Next"/>
</asp:Panel>

にフォーカスを置いてButtonPrevEnter押すと、DefaultButtonの代わりに がクリックされButtonPrevます。

ここに画像の説明を入力

この動作を変更するにはどうすればよいですか? 私は簡単な解決策を探しています。

私はラップできることを知っていButtonPrevますPanel

<asp:Panel runat="server" DefaultButton="ButtonNext">
    <asp:Panel runat="server" DefaultButton="ButtonPrev">
        <asp:Button runat="server" ID="ButtonPrev" OnClick="ButtonPrev_OnClick" Text="Prev"/>
    </asp:Panel>
    <asp:Button runat="server" ID="ButtonNext" OnClick="ButtonNext_OnClick" Text="Next"/>
</asp:Panel>

解決策ですが、スタイリングの問題が発生します (追加div)。

JavaScript を使用できることはわかっています。

<asp:Panel runat="server" DefaultButton="ButtonNext">
    <asp:Button runat="server" ID="ButtonNext" OnClick="ButtonNext_OnClick" Text="Next"/>
    <asp:Button runat="server" ID="ButtonPrev" CssClass="DisableDefaultButton" OnClick="ButtonPrev_OnClick" Text="Prev"/>
</asp:Panel>

<script type="text/javascript">
    $('.DisableDefaultButton').on('keypress',
        function(e) {
            var code = (e.keyCode ? e.keyCode : e.which);
            if (code == 13) { //Enter keycode
                $(this).click();
                e.preventDefault();
            }
        }
    )
</script>

私が現在使用しているこのソリューションですが、好きではありません。

私が見ていないものはありますか?

4

0 に答える 0