【问题标题】:Submit button removes "select2-container-active" from the class attribute提交按钮从类属性中删除“select2-container-active”
【发布时间】:2013-10-25 13:28:47
【问题描述】:

我有一个需要自定义验证的表单(引导选择不能很好地与 JQuery.validate 配合使用)。这种形式的主要规则是不能不选择任何下拉菜单。我推断当我选择一个下拉项时,我的下拉 div 的 class 属性会收到一个 select2-container-active 后缀,这使我能够编写自定义 JQuery 选择器:

 function validateSelect(id) {
    var result = {
        valid: $(id).hasClass("select2-container-active"),
        element: id
    }
    return result;
}

这会获取每个有效的(选定的)下拉菜单,这使我能够确定是否有任何无效的下拉菜单。问题是当我点击提交按钮时,在我有机会调用validateSelect 方法之前,后缀会从class 属性中删除。它被调用,但找不到后缀,因此“认为”没有选择下拉项目,即使我在每个下拉菜单中都选择了一个项目。

如何防止按钮在提交(点击)时删除此后缀?

编辑: 这是其中一个下拉菜单的 HTML:

<div class="control-group">
                <label class="control-label" for="selectInsert02">City:</label>
                <div class="controls">
                    <select name="citiesSelect" id="selectInsert02" class="input-xlarge with-search" data-bind="foreach: certificationModel.citiesList" required>
                        <option data-bind="text: Name, value: CityID"></option>
                    </select>
                </div>
            </div>

【问题讨论】:

  • 您发布的代码不应删除任何类。引导程序是否将该类添加到下拉列表中?如果它是自动的,那么它似乎是在该特定容器处于活动状态时添加的东西,因此当您单击它远离它时,该类被删除。您可以通过查看调试器中的元素选项卡来验证这一点。点击下拉菜单,它应该得到那个类。点击离开,班级应该离开。您可以提供用于创建下拉菜单的 HTML/javascript 吗?我们或许可以提出另一种解决方法。
  • 你是对的。即使我单击表单中的空白区域,类后缀也会被删除。这可能与引导相关。我将粘贴代码。请待命。
  • 在我看来,你有 2 个选项:一个:创建一个默认选项,它不是像“--select--”这样的有效选项,验证该选项没有被选中。二:创建一个“onclick”处理程序来验证是否设置了正确的选项,然后分配一个类似“selected”的类来检查(在该处理程序中,如果“selected”类存在但正确的选项不存在,则应该删除它) t 选择)
  • @Snowburnt 谢谢,我会尝试类似选项 2 的方法。

标签: jquery html validation twitter-bootstrap drop-down-menu


【解决方案1】:

在我看来,您有 2 个选项:一个:创建一个不是有效选项的默认选项,例如“--select--”,验证该选项是否未被选中。二:创建一个“onclick”处理程序来验证是否设置了正确的选项,然后分配一个类似“selected”的类来检查(在该处理程序中,如果“selected”类存在但正确的选项不存在,则应该删除它) t 选择)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-02
    相关资源
    最近更新 更多