使用 Javascript 从输入中删除 :valid 伪类

2023-11-25

我有一个包含多个部分的表格。每个部分均使用 Bootstrap 4 验证手动验证(无需实际提交表单)。这与下面的代码配合得很好;

let eventCreationForm = $(".event-creation-form");
if (!eventCreationForm[0].checkValidity()) {
    eventCreationForm.find(":submit").click();
}

但是,我只想突出显示无效的输入。即,不要以绿色突出显示有效输入。我想我不会为此覆盖引导样式,而是尝试删除:valid来自有效输入的伪类。但是,我找不到任何人这样做的例子。我浏览过的问题只是通过 CSS 更改样式。

我想这样的事情可能会起作用,eventCreationForm.find(":valid").removeClass(":valid");但我想它不会,因为它不是一个真正的课程。

下面的示例有一个调用堆栈错误,但这只是这个示例。

$(document).ready(function(){
    var forms = document.getElementsByClassName('needs-validation');
    var validation = Array.prototype.filter.call(forms, function(form) {
      form.addEventListener('submit', function(event) {
        if (form.checkValidity() === false) {
          event.preventDefault();
          event.stopPropagation();
        }
        form.classList.add('was-validated');
      }, false);
    });
    
    $(".manual-submit").click(function(){
      let eventCreationForm = $(".event-creation-form");
      if (!eventCreationForm[0].checkValidity()) {
        eventCreationForm.find(":submit").click();
      }
    })
  })
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">

<form class="needs-validation event-creation-form" novalidate>
  <div class="form-row">
    <div class="col-md-4 mb-3">
      <label for="validationCustom01">First name</label>
      <input type="text" class="form-control" id="validationCustom01" placeholder="First name" value="Mark" required>
      <div class="valid-feedback">
        Looks good!
      </div>
    </div>
    <div class="col-md-4 mb-3">
      <label for="validationCustomUsername">Username</label>
      <div class="input-group">
        <div class="input-group-prepend">
          <span class="input-group-text" id="inputGroupPrepend">@</span>
        </div>
        <input type="text" class="form-control" id="validationCustomUsername" placeholder="Username" aria-describedby="inputGroupPrepend" required>
        <div class="invalid-feedback">
          Please choose a username.
        </div>
      </div>
    </div>
  </div>
  <button class="btn btn-primary manual-submit">Submit form</button>
</form>

你无法摆脱:valid据我所知,根本就是伪类。

然而,这里的问题不是那些伪类。 Bootstrap 4 将按照问题中的要求运行was-validated类是NOT添加到表单中,只要手动添加is-invalid适当的时候上课。

根据Bootstrap 4 文档:

作为后备方案,可以使用 .is-invalid 和 .is-valid 类代替伪类进行服务器端验证。它们不需要 .was-validated 父类。

(强调我的。)

您看到的原因:valid and :invalid伪类的样式是因为was-validated父类的类:

Bootstrap 将 :invalid 和 :valid 样式的范围限定为父 .was-validated 类,通常应用于

。否则,任何没有值的必填字段在页面加载时都会显示为无效。这样,您可以选择何时激活它们(通常在尝试提交表单后)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Javascript 从输入中删除 :valid 伪类 的相关文章

随机推荐

  • Google 脚本仅在工作日触发

    我有一个用 Google 文档创建的工具 其中一部分是我每天上午 11 点备份一组数字 我用它来创建一个图表来显示一段时间内的进度 我使用触发器运行此脚本 该触发器设置为每周备份一次数据 我真正想做的只是在工作日备份这些数据 因为周末的数据
  • 集群环境下运行的Spring定时任务

    我正在编写一个应用程序 它有一个每 60 秒执行一次的 cron 作业 该应用程序配置为在需要时扩展到多个实例 我只想每 60 秒在 1 个实例上执行该任务 在任何节点上 我找不到开箱即用的解决方案 而且我很惊讶以前没有多次询问过这个问题
  • 如何获取字符串中给定名称的变量的值? [复制]

    这个问题在这里已经有答案了 为简单起见 这是我想要做的事情的精简版本 def foo a I want to print the value of the variable the name of which is contained in
  • 修复了位置在 Windows Safari 上不起作用的问题

    我的画廊有问题 位置 固定 并且网站内容正在其上滚动 该位置固定在每个浏览器中都有效 除了 Windows 7 上的 Safari 是的 它甚至在 IE8 和 Mac 上的 Safari 中也有效 顶部已定义 但它仍然充当相对位置并与其余内
  • Androidcamera2 API获取AF模式下的焦距

    我正在使用 Android Camera2 API 我可以在手动对焦模式下使用 LENS FOCUS DISTANCE 获取焦距值 然而 在 AF 模式下该属性始终为零 有什么方法可以获取AF模式下的焦距吗 距镜片最前表面的最短距离 成为焦
  • JSF 2 ui:repeat:将 div 内的每 n 个项目分组

    给定一个集合 我想在这样的页面上排列 div div div div div div div div div div div div div div div div
  • Android 中 Json 到 POJO 的映射

    在 Android 中通过 Rest Framework 处理 json 有哪些好的做法 例如 如果我得到如下所示的某个 json 结果 或任何其他结果 我只是给出更复杂的结果 lifts id 26 time 2012 11 21T12
  • iPhone 和 Android 可以录制和播放哪种音频格式?

    我正在设计一个应用程序 可以在 iPhone 和 Android 上录制短音频文件 并可以在这两个平台上播放 希望也可以在任何其他智能手机上播放 现在我正在使用 caf 和 iLBC 编解码器 因为我知道 iPhone 不编码 mp3 在这
  • 大规模编排与编排的面向服务的架构?

    我是一家大型金融公司的架构师 我们正开始在不同国家实施一个新的面向业务的信息系统 从一开始 核心思想就是尽可能遵循面向微服务的原则 并确保工程师已阅读 Sam Newman 撰写的 构建微服务 一书 现在我已经来到了十字路口 我们的服务主要
  • 从 COPY 命令获取行数

    从文件复制数据时 您可以使用 命令标签 获取 psql 中的行数 db COPY t FROM var lib postgres test sql COPY 10 我需要行数并希望避免冗余count 在桌子上 有没有办法得到这个计数COPY
  • 安全地从字典中删除多个键

    我知道如何删除条目 key 从我的字典里d 安全 你做 if d has key key del d key 但是 我需要安全地从字典中删除多个条目 我正在考虑定义元组中的条目 因为我需要多次执行此操作 entities to remove
  • MongoDB 副本集没有主节点,需要强制创建新的主节点

    我们有一个 mongoDB 副本集 有 3 个节点 Primary 中学 Arbiter 不知何故 我们的副本集最终 1 和 2 都被设置为次要成员 我不确定这是如何发生的 我们进行了服务器迁移 其中一个节点在其上运行 但只有一个 不管怎样
  • Google 地图 API:标记图像定位

    我已经更改了用于marker在谷歌地图上 新图像比旧图像宽得多 我注意到标记与旧图像对齐lat and lng以便标记位于其水平中点上方lat and lng 这不是我想要的 我想要的是lat and lng与左侧的标记对齐 我想偏移mar
  • “溢出”编译器错误 -9223372036854775808L

    的范围长数据类型 is 9223372036854775808 to 9223372036854775807 但以下语句会生成编译器错误 BC30036 溢出 Dim a As Long 9223372036854775808L 在线尝试一
  • HTML/CSS - 为什么打印时背景颜色变成白色?

    打印时 我的背景颜色甚至元素的字体颜色突然变成白色 这是一个示例标记 div div
  • Crystal Report(或 SSRS)在图像周围流动文本

    我想在水晶报表中有这样的布局 我怎样才能做到这一点 如果无法在 CR 或 SSRS 中完成 是否还有其他替代方案 我不相信水晶报表可以做到这一点 我对 SSRS 不太熟悉 但在查看了现场选项后 我也不相信它可以用它来完成 通常 现场位置在报
  • 实体框架批量插入抛出 KeyNotFoundException 错误

    我在用EF6并且由于速度低AddRange 我需要使用的方法BulkInsert 所以我通过以下方式添加了 BulkInsert for EF6 的 NuGet 包here 添加后我收到的第一件事dll是这个警告 发现同一依赖的不同版本之间
  • Apache POI 公式未计算

    因此 我在让 Apache POI 评估公式时遇到一些问题 这是我在编写之前调用的用于评估公式的代码 complete getCreationHelper createFormulaEvaluator evaluateAll complet
  • Woocommerce - 产品价格取决于国家/地区

    我有 2 个关于 Woocommerce for Wordpress 的问题 我正在开发一个向丹麦市场销售扬声器的网站 问题一 我可以检测访客的IP并检测该人来自哪个国家吗 我想这可以通过一些 ClientLocation api 来完成
  • 使用 Javascript 从输入中删除 :valid 伪类

    我有一个包含多个部分的表格 每个部分均使用 Bootstrap 4 验证手动验证 无需实际提交表单 这与下面的代码配合得很好 let eventCreationForm event creation form if eventCreatio