ASP.NET: поведение клавиш Backspace - PullRequest
2 голосов
/ 30 июня 2011

Я пишу собственное интранет-приложение в ASP.NET и VB.NET.Мои «клиенты» - это пользователи начального и среднего уровня.Все наши браузеры IE8 и выше, стандартные.

Приложение прекрасно работает, за исключением одной вещи.Клавиша возврата.Когда пользователь вводит недопустимый номер в текстовое поле, RegularExpressionValidator и ValidatorCalloutExtender отключаются и уведомляют пользователя.Отлично.За исключением того, что, когда пользователь закрывает всплывающее предупреждение и замечает, что курсор все еще мигает в текстовом поле, он / она чувствует, что пришло время нажать клавишу Backspace и удалить это противное значение поля.это действие как желание вернуться назад в историю страниц.Мой босс кричит.Его боссы кричат.У меня болит голова.

Итак, как я могу отключить это поведение?Мне по-прежнему нужен backspace для удаления символов в текстовом поле, но больше ничего.Политика компании здесь: Backspace заключается в удалении символов с экрана.Ни больше, ни меньше.

Есть идеи?

Спасибо,

Джейсон

Ответы [ 5 ]

1 голос
/ 30 июня 2011

Вы можете попытаться отключить кеширование, но это может повлиять на производительность. Я думаю, что есть функция JavaScript, которая это исправит, однако:

window.history.forward();

Соедините это с пользовательской функцией, например, так:

<script type=javascript>

function disableBack() { window.history.forward(); } setTimeout("disableBack()", 0);

</script>

Тогда позвони в свой <body onLoad="disableBack()">

Я думаю, что это должно сработать, однако я использовал это очень давно. Дайте мне знать, если это работает!

0 голосов
/ 30 июня 2011

Если курсор мигает в текстовом поле, то обратное пространство должно обрабатываться также полем ввода и не должно распространяться на объект документа или объект окна.Если это так, вам нужно отладить или использовать этот метод, чтобы остановить распространение на уровне документа

0 голосов
/ 30 июня 2011

Когда пользователь закрывает всплывающее окно, можете ли вы использовать это событие onClick, чтобы вернуть фокус формы обратно в TextBox? Я думаю, что это позволит пользователю возобновить редактирование значения TextBox.

0 голосов
/ 30 июня 2011

Я вижу 2 возможных решения:

  1. Удерживайте нажатой клавишу javascript на своей странице и не допускайте ее пузыри.
  2. Удалите всплывающее предупреждение и используйте «display = dynamic» с проверкой суммирования.
0 голосов
/ 30 июня 2011

Возможно, не использовать всплывающее окно в этой ситуации было бы хорошим подходом.

Проблема в том, что ни один из приемлемых элементов управления не имеет фокуса, и, не устанавливая фокус в качестве элемента управления, браузер перехватит его.

...