使用jquery.removeClass后Bootstrap的问题

时间:2012-08-18 12:03:50

标签: 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类添加到相应的控制组。

现在例如对name的验证是正确的,但是对于描述失败,描述control-group获取错误类并且正确显示(红色,标准引导程序)。但名称输入字段也是红色。我检查了源代码,名称的控制组没有.error类。 令我困惑的是,只有输入字段显示红色边框,正确显示相应的标签标签(默认颜色)。

这是一个更清晰理解的截图。

my_problem

在Chrome和Firefox中查看,这样我就可以排除浏览器错误。我还在chromes开发人员工具中手动添加和删除了类,它按预期工作。这是为什么?有人有解决方案吗?

1 个答案:

答案 0 :(得分:2)

form位于另一个div .control-group - 类(此处未显示)内,error - 类使用jQuerys .parents()搜索.control-group一直向上移动到DOM树,并导致.error应用于包含两个输入字段的div

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