0

我有一个带有最小/最大约束的 html5 日期控件,如下所示。

<input class="testclass" type="date" min="2020-02-01" max="2020-03-01"/>

有时可以通过 ajax 加载控件,并且有时可能会在表单上有多个这些控件。我打算在提交时捕获无效状态,以便我可以以与表单中的其余错误消息更一致的方式显示错误。

如果我直接将事件侦听器连接到特定控件,则上述操作非常有效。但是由于它可以通过ajax加载,可以多次出现,而且我不知道id的提前;我真的想使用类似于以下内容在文档级别连接它:

  $(document).on("invalid", ".testclass", function (evt) {
    //Do stuff
  });

但是当无效时,它不会被击中(它是无效的并且显示默认消息等)。但是,如果以相同的方式连接输入事件,则会按预期命中。我只是看不出我做错了什么。我已经为任何想要看到它的人提供了一个小提琴。

https://jsfiddle.net/thnderchild/dzm1sgvc/13/

4

1 回答 1

0

好的,所以我最终找到的答案是无效事件根本不会冒泡,因此全局事件处理程序永远不会接收到事件。

我的印象是所有事件都冒泡了。

哪些 jQuery 事件不会冒泡?

因此,如果我们将其用作通过 ajax 添加到 dom 的控件 - 我们必须绑定/重新绑定事件。

于 2020-02-21T14:51:52.550 回答