jQuery中的reportValidity()是什么?

9

我需要调用reportValidity,但我想在jquery中完成这个方法,有没有一个能够复制这个逻辑的jquery方法?

例如:

$('login').submit(function(event) {
  $(this).reportValidity();
}); 

这是返回的内容:

reportValidity不是一个函数


请注意,HTML标签已保留。

尝试使用 $('login').submit(reportValidity);。同时,请确保选择器正确。如果 login 元素是一个 id,请在 login 选择器之前使用 #,如果它是一个类,请使用 . - palaѕн
这个方法是 this.reportValidity(),但是它是实验性的方法。 - A. Wolff
1
所以,为了在各种浏览器上实现相同的行为,你需要像这样写:if(!$('login')[0].checkValidity()) $('login:submit').click(); - A. Wolff
1
@A.Wolff 好的,我现在已经这样写了:if(!$('#login')[0].checkValidity()) $('login:submit').click(); 问题是当执行 $('login:submit').click(); 的时候弹出框不会出现,我的意思是当你在标签上加上 require 属性并且用户没有填写该字段时弹出的那个提示框。 - user3287550
1个回答

13

这是因为$(this)将其包装在jQuery对象中,该对象不支持reportValidity()方法。它必须在本地DOM元素上调用。 在您的情况下,只需不使用jQuery包装即可。

$('login').submit(function(event) {
  this.reportValidity();
}); 

为了澄清和适应,这也可以起作用:

$('login').submit(function(event) {
  var $this = $(this);
  $this.get(0).reportValidity();
}); 

.get 从 jQuery 集合中检索普通元素。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接