“提交”按钮从类属性中删除“select2-container-active”

时间:2013-10-25 13:28:48

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

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

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

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

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

修改 以下是其中一个下拉列表的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>

1 个答案:

答案 0 :(得分:1)

我看到它的方式有两个选项:一个:创建一个默认选项,它不是像“--select--”这样的有效选项,验证是否未选中该选项。二:创建一个“onclick”处理程序,验证已经设置了正确的选项,然后分配一个类似你选中的“选中”的类(在该处理程序中你应该删除“selected”类,如果它存在但是正确的选项不是'选中)