Как событие по умолчанию с помощью клавиши Enter определено в форме HTML? - PullRequest
0 голосов
/ 18 июня 2019

Вот форма внутри диалогового окна с 2 вариантами выбора перед отправкой.Второй вариант в сочетании с двумя TextBox для указания времени.Это диалоговое окно по умолчанию скрыто, но появляется при нажатии кнопки.В форме, если щелкнуть Confirm, должна быть выполнена отправка формы.Если вместо этого нажать кнопку Cancel, диалоговое окно снова станет скрытым без перезагрузки страницы.

<div id="dialog">   
    <form runat="server">
        <asp:RadioButton GroupName="option" id="option1" text="Option1" value="option1" runat="server" >
        <asp:RadioButton GroupName="option" id="option2" text="Option2" value="option2" runat="server" />
        <div id="setTime">
             <asp:TextBox TextMode="Number" id="setHour" runat="server" min="0" max="23" step="1"/>
             :
             <asp:TextBox TextMode="Number" id="setMinute" runat="server" min="0" max="59" step="1"/>
        </div>
        <asp:Button id="confirm" text="Confirm" runat="server" onclick="Output"/>
        <input type="button" id="cancel" value="Cancel"/>
    </form>
</div>
Public Sub Output(ByVal sender As Object, ByVal e As EventArgs)

    If option1.Checked Then
        Option1()

    Else
        Option2(1)

    End If
End Sub

Событие, вызванное нажатием клавиши Enter, довольно противоречиво:

Когдаoption1 выбран, клавиша Enter выполняет нормальную отправку формы.

Когда выбран option2 и любое TextBox для времени введено неправильно, предупреждающее сообщение отображается как обычно (через JavaScript, не показывается вприведенный выше код).

Когда выбран option2 и правильно введен любой TextBox для времени, нажатие клавиши Enter не выполняет ничего из указанного кода, что отличается от нажатия кнопки Confirm мышью.

Когда я не нажимаю ничего после появления диалогового окна, затем нажимаю Enter, эффект такой же, как нажатие кнопки Cancel мышью - диалоговое окно исчезает без перезагрузки страницы.

Когда я щелкаю где-то после появления диалогового окна, затем нажимаю Enter, без эффекта.

Может кто-нибудь объяснить, почему существует такое несоответствие?особенно когда выбран option2, я действительно не могу понять, почему он не может выполнить код, в то время как все нормально для option1 ...

...