【问题标题】:HTML 'required' error firing way too lateHTML“必需”错误触发方式为时已晚
【发布时间】:2021-05-11 23:51:06
【问题描述】:

我有以下(非常简化的)HTML 和 javascript 代码。当我将numDig 字段留空并单击“保存”按钮时,required 错误显示在输入字段上有点太晚了,并且页面重定向。当页面已经重定向和加载时,会出现required 错误。 为什么会发生这种情况,有没有办法解决这个问题?目前,我可以在不填写必填字段的情况下提交表单。

我尝试了buttoninput,但它们都做同样的事情。当页面已经重定向时会出现required 错误。

<script>
    function saveSettings(){
        //More code here
        //and redirect to the previous page
    }
</script>
<form>
    <div class="space">
        <p> Enter the number you like </p>
        <input id="numDig" type="number" min="1" max ="6" required>
    </div>
    <div class="space">
        <button type="submit" onclick="saveSettings()">Save</button>
        <!--<input type="submit" onclick="saveSettings()" value="Save">-->
    </div>
</form>

【问题讨论】:

    标签: html required


    【解决方案1】:

    你把这个函数放在onsubmit里,才可以正常生效

    <form onsubmit="saveSettings()">
        <div class="space">
            <p> Enter the number you like </p>
            <input id="numDig" type="number" min="1" max ="6" required>
        </div>
        <div class="space">
            <input type="submit">Save</button>
        </div>
    </form>
    

    【讨论】:

    • 谢谢!现在它起作用了!你能解释一下为什么你的方法有效,但我的方法无效吗? onclick="saveSettings()onsubmit="saveSettings() 到底有什么区别?
    • required 指定必须先填写输入字段,然后才能使用onsubmit 提交表单。这是一个 javascript 内置验证,与 onsubmit 一起使用,并与给定的按钮一起使用 type='submit'. onclick` 只是您附加到按钮的操作,没有附加额外的输入验证。此外,表单的onclick 只会为表单元素添加点击操作而不做任何其他事情,因此使用是多余的
    • 感谢您的解释。我现在聪明了一点!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-21
    相关资源
    最近更新 更多