所以我有这个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将永远不会打印到控制台中。这是为什么?
答案 0 :(得分:1)
改为:
$(".PWD1")
或id:
$("#user_password")
你需要这样做一个类选择器。
您使用 ID 引用选择器,而类名。
而且我也不确定你的模态是否是动态生成的,然后你必须将事件委托给最近的静态父或$(document)
本身。
$(document).on("keypress keyup keydown", ".PWD1", function() {
当您使用keypress keyup keydown
事件时,回调函数会因keyup and keydown,keypress
而触发两次。