我在自定义表单上显示的错误时遇到问题。这是有问题的代码:

<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该函数在做什么。因此,请尝试让我知道它是否有效。

09-11 20:48