【问题标题】:Why is this my jQuery keypress() event not working?为什么我的 jQuery keypress() 事件不起作用?
【发布时间】:2015-08-04 14:10:40
【问题描述】:

我有一个文本框

<input id="textinput" type="text" name="text_input" value=""/>

和一个正确链接的(在文档准备功能中做了一个 console.log 并且它工作)jquery 文件

$(document).ready(function()
{
    console.log("hi");

});

$( '#textinput' ).keypress(function() {

    var tag_text = $('#textinput').val();
    console.log("key pressed");

});

As far as I can tell, I'm doing everything properly. 但是,我显然做得不对。

我的目标是让当一个字母/字符(或任何键,真的)被按下并专注于 textinput 文本框时,就会触发一个事件。

我在这里做错了什么?

【问题讨论】:

  • 您确定正确包含 jQuery 了吗?您在控制台中遇到什么错误?
  • 为什么你把console.log放在文档准备事件中而不是keypress代码?
  • 您必须将 keypress 处理程序放入准备好的文档中
  • @Juhana 因为我对 jQuery 事件的理解太可怕了......

标签: javascript jquery html events triggers


【解决方案1】:

keypress函数放在$(document).ready()函数里面:

$(document).ready(function() {
    console.log("hi");

    $( '#textinput' ).keypress(function() {

        var tag_text = $(this).val();
        console.log("key pressed");

    });

});

JSFiddle

【讨论】:

  • 我对 javascript 中的事件的理解很糟糕,我应该感觉很糟糕......我认为它们将独立于“准备就绪”的文档,因此必须存在于函数之外。我想我应该多学习一些关于 jquery 的知识。
  • 哈哈,您实际上希望文档在开始执行任何操作之前“准备就绪”。我就是这么看的。大多数事情都会在document.ready 函数中进行。我们随时为您提供帮助! @xcdemon05
【解决方案2】:

尝试在$(document).ready() 函数中绑定按键事件。您的代码按预期工作。

$(document).ready(function() {

    $( '#textinput' ).keypress(function() {
        var tag_text = $('#textinput').val();
        console.log("key pressed");
    });

});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-25
    • 2020-12-27
    • 2013-02-24
    • 1970-01-01
    • 2016-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多