我有一个需要自定义验证的表单(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>
答案 0 :(得分:1)
我看到它的方式有两个选项:一个:创建一个默认选项,它不是像“--select--”这样的有效选项,验证是否未选中该选项。二:创建一个“onclick”处理程序,验证已经设置了正确的选项,然后分配一个类似你选中的“选中”的类(在该处理程序中你应该删除“selected”类,如果它存在但是正确的选项不是'选中)