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

Bootstrap框架中is-invalid类的工作原理是什么?附Vue表单验证实例

Bootstrap is-invalid 类的工作机制详解

你猜的完全正确!Bootstrap里的is-invalid类和invalid-feedback类是配合实现表单错误反馈的核心,下面我给你拆解具体的工作逻辑:

  • 错误提示的显示触发逻辑
    Bootstrap默认会把invalid-feedback元素隐藏——它的默认CSS是display: none。当你给表单控件(比如你的<input>)加上is-invalid类时,Bootstrap的CSS会通过通用兄弟选择器,让紧跟在控件之后的invalid-feedback元素自动显示出来。对应的核心CSS规则大概是这样的:

    .is-invalid ~ .invalid-feedback {
      display: block;
    }
    

    这里的~选择器意味着,只要两个元素在同一个父容器下,且invalid-feedback在is-invalid控件的后面,就能触发显示效果,这也是为什么你的代码里把错误提示放在输入框后面是正确的做法。

  • 表单控件的样式变化
    除了显示错误提示文本,is-invalid类还会给表单控件本身加上错误样式:比如红色的边框和阴影,让用户一眼就能看到哪个输入项有问题。对应的简化CSS是:

    .form-control.is-invalid {
      border-color: #dc3545; /* Bootstrap的危险色 */
      box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.25);
    }
    
  • 和Vue动态绑定的配合
    你的代码里用:class="{' is-invalid': errors.foo}"来动态添加错误类,同时用v-if="errors.foo"控制提示元素的渲染。其实这里的v-if不是必须的——只要is-invalid存在,invalid-feedback就会显示,但用v-if可以在没有错误时把提示元素从DOM中移除,算是个小优化。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:21:34