В моем приложении вы вводите число в поле ввода, которое проверяется на стороне клиента различными валидаторами. У меня есть внешний JS-файл с кодом, который помещает поле ввода в фокус и выбирает предыдущее введенное число. Я также включил «defaultbutton» в свой тег формы, чтобы набирать новый номер и отправлять форму было легко и быстро (просто введите снова и нажмите ENTER)
Все отлично работает, кроме одной вещи. При наборе номера, выходящего за пределы допустимого диапазона, или при оставлении поля ввода пустым, сообщение об ошибке отображается только при нажатии кнопки «Отправить» с помощью кнопки мыши. Если нажать ENTER, рядом с полем ввода отображается «*», но не сообщение об ошибке.
Надеюсь, приведенного ниже кода достаточно, чтобы понять, что не так.
Заранее спасибо.
<form id="form1" runat="server" defaultbutton="btnCheckNr">
...
<asp:ValidationSummary ID="ValidationSummary1" runat="server"
<asp:TextBox ID="inputBox" runat="server" Height="22px" Width="75px" />
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="inputBox" Display="Dynamic"
ErrorMessage="Type a number between 1 and 100." SetFocusOnError="True">*</asp:RequiredFieldValidator>
<asp:RangeValidator ID="RangeValidator1" runat="server" ErrorMessage="Skriv ett heltal mellan 1 och 100." Text="*"
MaximumValue="100" MinimumValue="1" Type="Integer" ControlToValidate="inputBox" Display="Dynamic"></asp:RangeValidator>
<asp:Button ID="btnCheckNr" runat="server" Text="Skicka gissning" onclick="btnCheckNr_Click" />
...
</form>
JS:
var Capsule = {
init: function() {
var input = $('#inputBox');
if (!input.is(":disabled")) {
input.focus();
input.select();
}
}
}
window.onload = Capsule.init;