因此,我有这个Ruby on Rails应用程序,我在其中打开了一个模式以创建新用户。现在,我想用javascript收听该模式中的表单,但是由于某种原因,它根本找不到我的元素。

因此,可以说我在.js中具有以下功能:

$(document).ready(function()
{
    $("#PWD1").on("keypress keyup keydown", function()
    {
        console.log("Check");
    });
});


这就是我的输入字段在模态中的样子:

<input
    class="PWD1"
    id="user_password"
    name="user[password]"
    placeholder="Password..."
    type="password">


现在,当我在该输入字段中键入任何内容时,我的Check便永远不会打印到控制台中。这是为什么?

最佳答案

更改为此:

$(".PWD1")


或ID:

$("#user_password")


您需要以这种方式进行类选择器。



您使用ID引用选择器,而ID是一个类名。



而且我也不确定如果您的模态是动态生成的,那么您必须将事件委托给最接近的静态父代或$(document)本身。

$(document).on("keypress keyup keydown", ".PWD1", function() {




边注:

当您使用keypress keyup keydown事件时,由于keyup and keydown,keypress,回调函数将触发两次。

关于javascript - 在模式中使用输入字段,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23445465/

10-13 00:33