Я пытаюсь использовать onkeypress в элементе управления input type = "text", чтобы запустить некоторый javascript, если нажата кнопка ввода. Он работает на большинстве страниц, но у меня также есть несколько страниц с настраиваемыми элементами управления .NET.
Проблема в том, что отправка .NET срабатывает до нажатия клавиши. Есть ли у кого-нибудь представление о том, как сначала запустить onkeypress fire?
Если это поможет, вот мой javascript:
function SearchSiteSubmit(myfield, e)
{
var keycode;
if (window.event)
keycode = window.event.keyCode;
else if (e)
keycode = e.which;
else
return true;
if (keycode == 13)
{
SearchSite();
return false;
}
else
return true;
}





Javascript OnKeyPress всегда будет запускаться первым, это скорее случай, завершил ли он свою работу до того, как страница будет отправлена обратно ..
Я бы посоветовал переосмыслить, что и где происходит .. Что происходит на стороне сервера?
На самом деле, у меня было только onkeypress = "SearchSiteSubmit ()" добавление return (onkeypress = "return SearchSiteSubmit ()" заставило его работать.
Это не очень четкий вопрос, поэтому я попробую -
Похоже, вы ищете здесь нажатие клавиши "Enter". Проблема, по-видимому, в том, что клавиша «Enter» обычно привязана к кнопке отправки в форме автоматически браузером, что означает, что когда пользователь нажимает клавишу «Enter», вы отправляете форму, а не запускаете здесь javascript. Что вам нужно сделать, так это создать глобальный обработчик событий, который проверяет, находится ли «MyField» в фокусе при нажатии кнопки ввода, и если да, то запускать javascript вместо отправки формы. Надеюсь, я понял ваш вопрос!
Как вы назначаете javascript?
Должно получиться так:
<input id = "TextID" type = "text" onkeypress = "return SearchSiteSubmit('TextID', event)" />
Интересно .. Так какая разница, добавляя "возврат"? Это потому, что функция имеет возвращаемое значение?
Спасибо, onkeypress запускает функцию, указанную выше, а затем запускает поисковый сайт, который является адаптацией кода CSE Google. Поэтому я полагаю, что обращение к Google и обратно для выполнения поиска может занять больше времени, чем .NET, который просто делает что-либо.