我正在尝试创建其中一个标准的新密码表单,您可以在其中键入一次新密码,然后再次确认.我希望这样,一旦你模糊了这些字段,如果它们不匹配,两者都将被标记为无效,如下面的场景:
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);
}
Run Code Online (Sandbox Code Playgroud)
这似乎应该直观地工作,但当然不是.错误很简单TypeError: $(...).setCustomValidity is not a function
.
请注意:我不是要求如何在字段中添加红色环或其他任何内容,我希望它实际上是无效的(例如,将其validity.valid
属性返回false
).
是否有可能做到这一点?
谢谢!