我在自定义表单上显示的错误时遇到问题。这是有问题的代码:
<html>
<body>
<form action="/done.html">
<input type="text" id="query" name="query"
required
oninvalid="this.setCustomValidity('What ?')">
<input type="submit">
</form>
</body>
</html>
如果我在输入中输入内容,则提交表单毫无问题。但是,如果我只按提交,那么即使输入已填写也无法再次提交!
我必须添加
onkeypress="this.setCustomValidity('')"
。为什么
setCustomValidity
一段时间后没有自动清除?是否还有另一种没有大量js的解决方案? 最佳答案
我看到您的问题是,当您提交不包含数据的表单时,该表单将停止工作,而有效的工作是使用空字符串执行setCustomValidity
函数。
基于此,一种解决方案是在表单上添加onsubmit="setCustomValidity('')"
,以便每次提交表单时重新启动。
我不能肯定地告诉你,因为我不知道setCustomValidity
该函数在做什么。因此,请尝试让我知道它是否有效。