我有一个文本框,其中我为Enter键写了按键功能,它应该显示警告。
这是我的HTML和脚本。
这是我的文本框:
<li>
<input type="text" class="fi_top" placeholder="Howdy" id="howdy" value="">
</li>
在页面内我有
脚本:
$( "#howdy" ).keypress(function( event )
{
if ( event.which == 13 ) {
alert('okay');
}
});
但是当我在文本框中输入时,我没有收到警报。
我正在做的错误是什么?如何解决这个问题?
答案 0 :(得分:7)
我认为你是在HTML中动态添加这个元素而.keypress只适用于预加载的元素。 jQuery为动态添加元素提供了$(document).on。
$(document).on("keypress", "#howdy", function (e) {
if (e.keyCode == 13 || e.which == '13') {
//Do your work
}
});
答案 1 :(得分:1)
嘿,你应该尝试这样的keypress
事件
$("#howdy").keypress(function() {
var keycode = (event.keyCode ? event.keyCode : event.which);
if (keycode == '13') {
callAjaxGetJoiningDate($(this).val());
event.preventDefault()
}
});
答案 2 :(得分:1)
尝试
event.KeyCode == 13
JS代码:
$( "#howdy" ).keypress(function( event )
{
if ( event.keyCode == 13 ) {
alert('okay');
}
});
请参阅此fiddle
答案 3 :(得分:1)
将它放在document.ready块中,以便在整个dom加载后触发。最后使用defer属性标记脚本。
你应该同时使用which和keyCode,因为它们不适用于所有浏览器。
$( "#howdy" ).keypress(function( event )
{
if ( event.which == 13 || event.keyCode == 13) {
alert('okay');
}
});