You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

添加加载Spinner的Bootstrap提交按钮导致HTML5 required属性失效

问题原因

你当前的实现逻辑存在两个核心问题,导致HTML5原生校验失效:

  • 点击提交按钮后立刻执行了禁用按钮、替换加载文本的逻辑,没有等待表单校验结果
  • 手动调用$("#save").submit()方法会直接跳过HTML5的原生表单校验流程,因此required属性的规则不会被触发,也不会弹出必填提示

解决方案

将加载状态的更新逻辑从按钮的click事件迁移到表单的submit事件上即可。HTML5原生校验通过后才会触发表单的submit事件,校验失败时该事件不会触发,也就不会执行加载状态的更新逻辑。

修改后的JS代码如下:

$(document).ready(function() {
    // 绑定表单的submit事件而非按钮的click事件
    $("#save").submit(function() {
        const submitBtn = $("#load");
        // 禁用提交按钮防止重复提交
        submitBtn.prop("disabled", true);
        // 替换为加载状态
        submitBtn.html(
            `<i class="spinner-border spinner-border-sm mb-1"></i> Loading`
        );
    });
});

你的HTML代码不需要做逻辑修改,仅可顺便优化<input>标签的写法(input为自闭合标签,不需要额外写</input>闭合标记),优化后写法参考:

<form method="post" action="" id="save">     
  <input class="input" name="passwort" type="password" placeholder="Enter your password here" required>
  <button type="submit" class="btn btn-lg btn-primary" id="load"> Save </button>
</form>

内容的提问来源于stack exchange,提问作者Mischa Mustermann

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 05:36:01