我正在尝试创建其中一种标准的新密码表单,您可以在其中输入一次新密码,然后再输入一次以确认。我希望这样一旦你模糊了这些字段,如果它们不匹配,两者都将被标记为无效,如下面的场景:
abc
用户输入密码#newpassword1
。- 用户选项卡到
#newpassword2
. def
用户输入密码#newpassword2
。- 用户标签离开。
- 验证检测到不匹配,并将两者标记
#newpassword1
为#newpassword2
无效。
我知道我可以使用 将事件的目标标记为无效e.target.setCustomValidity(...)
,但我不太了解 JavaScript 的事件模型,也无法弄清楚如何根据事件目标自身的无效将不同的元素标记为无效。
这是我尝试使用的(非工作)代码的相关摘录:
if ( $('#newpassword1').val() != $('#newpassword2').val() ) {
errorMessage = "The new passwords you've entered don't match.";
$('#newpassword1, #newpassword2').setCustomValidity(errorMessage);
}
直觉上,这似乎应该可以工作,但当然不能。错误很简单TypeError: $(...).setCustomValidity is not a function
。
请注意:我不是在问如何向字段添加红环或其他任何内容,我希望它实际上是无效的(例如,让它的validity.valid
属性返回false
)。
是否有可能做到这一点?
谢谢!