Я заметил довольно странное поведение в IE.
У меня есть HTML-форма с одним полем ввода текста и кнопкой отправки
При нажатии кнопки Отправить мне нужно выполнить функцию JavaScript на стороне клиента, которая выполняет необходимые действия.
Теперь, когда я хочу запретить обратную передачу в текстовом поле (при нажатии клавиши ввода)
Я добавил функцию JavaScript нажатия клавиш, которая выглядит следующим образом:
<input type=text onkeypress="return OnEnterKeyPress(event)" />
function OnEnterKeyPress(event) {
var keyNum = 0;
if (window.event) // IE
{
keyNum = event.keyCode;
}
else if (event.which) // Netscape/Firefox/Opera
{
keyNum = event.which;
}
else return true;
if (keyNum == 13) // Enter Key pressed, then start search, else do nothing.
{
OnButtonClick();
return false;
}
else
return true;
}
Удивительно, но это не работает.
Но если я передам текстовое поле функции:
<input type=text onkeypress="return OnEnterKeyPress(this,event);" />
function OnEnterKeyPress(thisForm,event) {
var keyNum = 0;
if (window.event) // IE
{
keyNum = event.keyCode;
}
else if (event.which) // Netscape/Firefox/Opera
{
keyNum = event.which;
}
else return true;
if (keyNum == 13) // Enter Key pressed, then start search, else do nothing.
{
OnButtonClick();
return false;
}
else
return true;
}
Я могу предотвратить обратную передачу.
Кто-нибудь может подтвердить, что именно здесь происходит?
форма HTML содержит только одно текстовое поле и кнопку отправки
Результирующее o / p функции JavaScript, выполняемой при отправке, отображается в текстовой области HTML в отдельном div.