2014-11-24 3 views
0

У меня есть текстовое поле, в котором я записал функцию нажатия клавиши Enter, которая должна показывать предупреждение.Простой случай нажатия клавиши Не работает для текстового поля

Вот мой html и скрипт.

Вот мой Textbox:

<li> 
<input type="text" class="fi_top" placeholder="Howdy" id="howdy" value=""> 
</li> 

А внутри страницы у меня есть

Сценарий:

$("#howdy").keypress(function(event) 
{ 
    if (event.which == 13) { 
    alert('okay'); 
} 
}); 

Но я не получаю уведомление, в то время как я нажимаю войти в текстовое поле.

Какая ошибка я делаю и как я могу это исправить?

+0

попробуйте использовать event.keyCode == 13 – VSri58

+0

я попытался только сейчас, что tooo .. Но не работает :( – ABD

+0

KEYCODE с C в колпачках. Смотрите мой ответ. – VSri58

ответ

2

Я думаю, что вы добавляете этот элемент динамически в HTML, а .keypress будет работать только с предварительно загруженными элементами. jQuery предоставил $ (document) .on для динамически добавленных элементов.

$(document).on("keypress", "#howdy", function (e) { 
    if (e.keyCode == 13 || e.which == '13') { 
     //Do your work 
    } 
}); 
+0

Он отлично работает! Могу ли я узнать причину, почему это не сработало? – ABD

+0

Так что, пожалуйста, примите ответ. –

1

Эй, вы должны попробовать keypress событие, как этот

$("#howdy").keypress(function() { 
    var keycode = (event.keyCode ? event.keyCode : event.which); 
    if (keycode == '13') { 
     callAjaxGetJoiningDate($(this).val()); 
     event.preventDefault() 
    } 
}); 
+0

Я пробовал эту $ ('# howdy'). keyup (function() { alert ('okay'); }); Но не работает – ABD

1

Попробуйте

event.KeyCode == 13 

JS код:

$("#howdy").keypress(function(event) 
{ 
    if (event.keyCode == 13) { 
    alert('okay'); 
} 
}); 

Смотрите эту fiddle

+0

keyCode не работает старый IE, поэтому вы должны использовать оба. – Beri

+0

Это работает хорошо в скрипке, но в моем коде это не получается, я ищу по этой причине sri – ABD

+0

@Bizz Не могли бы вы упомянуть имя и версию вашего браузера? – VSri58

1

Поместите это в document.ready блок, чтобы он срабатывал после того, как весь дом загрузится. В конце концов отметьте свой скрипт атрибутом defer.

Вы должны использовать оба ключа и keyCode, так как они не работают во всех браузерах.

$("#howdy").keypress(function(event) 
{ 
    if (event.which == 13 || event.keyCode == 13) { 
    alert('okay'); 
} 
}); 
Смежные вопросы