質問

I have an asp.net panel with a default button setting but the button is never trigger when hitting the ENTER button. I searched SO for this question, but could not find any response that works.

How can I get btnRegister to click when the users hits ENTER ?

<asp:Panel runat="server" ID="pnlCustomer" DefaultButton="btnRegister">
    <table width="500px" border="0" cellpadding="0" cellspacing="0">
    <tr>
        <td align="right">
            <asp:Button ID="btnBackToProfile" Text="Back To Profile" runat="server" Enabled="false"
                onclick="btnBackToProfile_Click" />
        </td>
        <td align="right">
            <asp:Button ID="btnClearnForm" Text="Clear Form" runat="server" 
                OnClientClick="ClearForm1()" />
        </td>
        <td align="right">
            <asp:Button id="btnRegister" runat="server" onclientclick="document.getElementById('AlertTime').value = GetSeconds();" Text="Continue" OnClick="btnRegister_Click" />
        </td>
    </tr>
    </table>
</asp:Panel>
役に立ちましたか?

解決

The first thing that I like to point here is that the default button is the control that is pressed when the focus is on one of the controls that exist inside this Panel, and not the rest of the page.

The main reason for your issue is because inside this Panel you do not have anything (else than buttons) that can keep the focus of the keyboard and send the enter to the default button.

Something like a text editor, for example: if you place a text editor inside the panel, click on it and then press enter, the default button will be fired.

So when the focus is inside this panel is on a button, and when you press enter the selected button is pressed, not the default one.

他のヒント

I had this same issue and discovered that the Panel can't be outside of the table containing the default button. If you put your Panel inside the cell that has the button it should work.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top