Я пытаюсь получить тег <a>
, который запускается, когда пользователь нажимает клавишу "enter". (onkeypress)
.
my <a>
тег:
<a href="javascript:search()" onkeypress="return runScript(event)">
это мой javascript:
function runScript(e)
{
if (e.keyCode == 13) {
alert("dssd");
return false;
}
}
Я не знаю, что испортилось?
его работа для меня
<a href="javascript:search();" onkeypress="return runScript(event);">Open in new window using javascript</a>
JavaScript
window.runScript = function (e) {
if (e.keyCode == 13) {
alert('ss');
return false;
}
else {
return true;
}
}
window.search = function () {
alert('s');
}
живая демонстрация: fiddle
Напишите свой html, как указано ниже. Обратите внимание на свойство tabindex
, которое делает тег ориентированным в определенных браузерах.
<a id="link" href="http://google.com" onkeydown="runScript(event)" tabindex="1">I am a link</a>
Если вам нужна автофокусировка при загрузке, вы можете использовать функцию jQuery focus
, как показано ниже.
$(document).ready(
function(e){
$("#link").focus();
}
);
Затем ваша функция
function runScript(e){
if(e.keyCode == 13){
alert("pressed enter key");
}
}
вам нужно вызвать e.preventDefault();
(или вернуть false в некоторых браузерах), если вы хотите, чтобы ссылка не загружала ссылку в href.
function runScript(e){
e.preventDefault();
if(e.keyCode == 13){
alert("pressed enter key");
}
return false;
}
см. демо здесь: http://jsfiddle.net/diode/hfJSn/9/show нажмите клавишу ввода при загрузке страницы
Кнопка ENTER фактически запускает событие onclick:
<a href="#" onclick="alert('hello!');">
Это означает, что функция search() внутри href будет выполняться перед событием onkeypress.
Это работает в моем браузере, хотя я подозреваю, что это не способ достичь того, что вы на самом деле хотите сделать... (может быть?)
Номер один, вы, вероятно, не хотите, чтобы он "return
" ничего, поэтому вы можете просто сделать onkeypress="runScript(e)"
, и он запустится. Если эта функция возвращает значение, она не собирается никуда...
Второй номер, редко бывает, что событие keydown срабатывало бы на элементе anchor (<a>
), если, конечно, пользователь не запустит другие элементы, пока он не сфокусируется, а затем нажмет клавишу (обычно браузер будет "выделить" элемент, который в настоящее время имеет фокус клавиатуры, если это не только целая страница). Вы хотите, чтобы ваш script запускался, когда кто-то нажал кнопку ввода после ввода в поле поиска или что-то еще? если это так, вы, вероятно, хотите прослушать событие в самом окне поиска, поэтому добавьте его как атрибут onkeydown этого элемента (например: <input id="mySearchBox" onkeydown="runScript(e)">
), если вы просто хотите, чтобы он запускался всякий раз, когда пользователь нажимает кнопку ввода, независимо от фокуса или ввод текста в какое-либо конкретное поле, просто сделайте так, как сказал комментарий edmastermind29, и добавьте прослушиватель событий ко всему документу.
Вы пытались добавить это в свой script?
document.onkeypress = runScript;