我需要验证至少选择了一个元素。这个元素是动态填充的,我需要使用验证引擎验证我是否至少选择了一个选项元素。
这里填写选择项目
jQuery("#bt_add").click(function(){
storeUsedGroups[attr_group.val()] = true;
jQuery("#atributo_id").append('<option value='+attr_name.val() +
' groupid='+attr_group.val()+'>' + attr_group.text() +
' : ' + attr_name.text()+'</option>'
);
});
并根据需要进行验证,但是对于提交表单,需要选择插入的选项。
<select name="atributo_id[]" id="atributo_id" multiple="multiple" class="validate[required]">
<option value="5" groupid="1">Color : Azul</option>
</select>
我只需要验证非空元素。
答案 0 :(得分:1)
更新:如果我理解正确,则只有在使用选项填充选择元素时才应用所需规则。
您可以使用自定义函数调用来执行此操作。将您选择的课程更改为
<select name="atributo_id[]"
id="atributo_id"
multiple="multiple"
class="validate[funcCall[ifSelectNotEmpty]]">
现在功能
function ifSelectNotEmpty(field, rules, i, options){
if ($(field).find("option").length > 0 &&
$(field).find("option:selected").length == 0) {
// this allows the use of i18 for the error msgs
return "* This field is required";
}
}
它应该有效,但它不会因为jquery.validationEngine.js
在第707行崩溃(恕我直言,这是一个错误)。所以你需要从
if(!required && && !(field.val()) && field.val().length < 1) options.isError = false;
到
if(!required && !field && !(field.val()) && field.val().length < 1) options.isError = false;
^^^^^^
原始回答 如果您想检查是否已选择任何选项,您可以这样做
if (!$("#atributo_id option:selected").val()) {
alert("Nothing has been selected");
}
或
if (!$("#atributo_id option:selected").length) {
alert("Nothing has been selected");
}
<强> jsFiddle 强>