javascript - 添加另一个类后,jQuery 不再为每个类找到 dom

标签 javascript jquery

我对只应包含数字的文本字段使用客户端验证。 我只是将自定义类 only-digits 添加到特定模型字段:

TextBoxFor(m => m.Customer.PhoneNumber, new { @class = "k-textbox only-digits" })

..并在方法中处理用户输入:

$(".only-digits").keydown(function (e) {...}

这工作正常,但如果服务器发回无效表单,则 .keydown 事件不再触发。 我假设这是由现在添加的验证错误类引起的。 dom 元素样式现在是:

input-validation-error k-textbox only-digits

为什么 $(".only-digits") 显然不再起作用了?

谢谢

最佳答案

我怀疑这是一个事件委托(delegate)问题。要解决这个问题,您需要将事件绑定(bind)到最近的静态父级,并使用 jQuery 的 on()功能如下:

$('body').on('keydown', '.only-digits', function(e) {  
    // Whatever code you need to run in your handler.
});

请注意,使用委托(delegate)的事件处理程序将 body(或 document)弄得乱七八糟通常是不好的做法。您需要确定所有 .only-digits 元素中最接近的静态父元素。

关于javascript - 添加另一个类后,jQuery 不再为每个类找到 dom,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39245330/

相关文章:

javascript - fitBounds() 显示整个地球(如果 map 先隐藏然后显示)

javascript - 扩展 div 以显示隐藏的内部内容

javascript - 滚动回到顶部在 IE6 中不起作用

javascript - 我正在尝试使用 javascript 单击按钮时显示表单

javascript - 了解 QUnit 异常测试

javascript - 错误 : <line> attribute y1: Expected length, "NaN"

php - Laravel Ajax - 即使数据库行不存在也会成功执行

javascript - 无法加载资源:net::ERR_SSL_BAD_RECORD_MAC_ALERT ajax 文件上传

javascript - 使用 id 值来搜索类

javascript - 为什么使用 Javascript if 语句替换类名不起作用?