Keydown脚本仅在将脚本代码放在输入框下方时才起作用?

时间:2016-12-07 05:56:21

标签: javascript jquery keydown

当我将脚本代码放在文本框上方时,它不起作用,但如果我将代码放在输入字段下面,那么它就能正常工作。

View

不工作

但是下面的作品

<script src="js/jQueryv3.1.1.js" type="text/javascript"></script>

<script>
$("input").keydown(function(e){
    alert();
});
</script>

<input type="number" id="phoneNo" />

2 个答案:

答案 0 :(得分:2)

用$(document).ready()包裹你的代码,如:

$(function() {
    $("input").keydown(function(e){
        alert();
    });
});

$(document).ready(function() {
    $("input").keydown(function(e){
        alert();
    });
});

jQuery在输入框之前定义输入元素时无法找到输入元素,但是当你在输入框之后写入相同时,它将获得有关输入框的信息。

希望它会对你有所帮助。

答案 1 :(得分:0)

假设您想要将处理程序附加到alreadt定义的元素,您可以使用

$("input").keydown(function(e){
    alert();
});

正如您已经使用过的那样。

但是,如果要将事件处理程序附加到动态元素(稍后创建的元素),则可以使用:

$(document).on('keydown', 'input', function(e){
    alert();
});