jquery - 使用 jquery.removeClass 后 Bootstrap 出现问题

标签 jquery css twitter-bootstrap

我在使用 twitter bootstrap 框架和 jQuery 时遇到以下问题: 我有以下表单(经过简化,真正的表单是使用 cakephp 的 formhelper 构建的,并且有更多的类和 id):

<form class="form-horizontal">
  <div class="control-group">
    <label class="control-label" for="input01">Name</label>
    <div class="controls">
      <input type="text" class="input-xlarge" id="name">
      <span class="help-block">Supporting help text</span>
    </div>
  </div>
  <div class="control-group">
    <label class="control-label" for="input01">Description</label>
    <div class="controls">
      <input type="text" class="input-xlarge" id="description">
      <span class="help-block">Supporting help text</span>
    </div>
</form>

服务器端验证后,我将 .error 类添加到相应的控制组中。

现在,例如,名称验证正常,但描述失败,描述控制组获取错误类并正确显示(红色,标准 Bootstrap )。但名称输入字段也是红色的。我检查了源代码,名称的控制组没有 .error 类。 让我困惑的是,只有输入字段显示有红色边框,相应的标签标记正确显示(默认颜色)。

这是一个屏幕截图,可以让您更清楚地理解。

my_problem

在 Chrome 和 Firefox 中检查它,这样我就可以排除浏览器错误。我还在 Chrome 开发者工具中手动添加和删除了该类,并且它按预期工作。这是为什么?有人能解决这个问题吗?

最佳答案

form 位于另一个带有 .control-group-class(此处未显示)的 diverror-class 使用 jQuery 应用 .parents()搜索 .control-group ,它会一直向上遍历 DOM 树,并导致 .error 被应用于包含两个输入的 div字段。

删除封闭的 div 类解决了问题。这有点不公平,因为我可以获得完整的代码。 :(

关于jquery - 使用 jquery.removeClass 后 Bootstrap 出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12018392/

相关文章:

jquery - 使用jquery从右向左滑动内容

css - 无法创建非粘性页脚

twitter-bootstrap - 带有输入组的 Bootstrap 面板

jquery - Bootstrap 3.0 导航下拉菜单不起作用?

javascript - 使用通过 API 接收的字体定义作为前端的字符串

javascript - 在有或没有 jquery 的情况下使用延迟 Angular promise 的正确方法是什么?

javascript - 保存已发布选择中的先前值

javascript - 在 Div 中单击加载页面并更改文本

jQuery 手机 : remove rangeslider label and make slider wider

javascript - 辅助功能 - 在 TAB 键按下时触发悬停和焦点事件