【问题标题】:Select multiple element not empty validation engine without required选择多个元素不是空的验证引擎,不需要
【发布时间】:2013-03-13 00:52:57
【问题描述】:

我需要验证至少选择了一个元素。此元素是动态填充的,我需要使用验证引擎验证是否至少选择了一个选项元素。

这里填写选择选项项

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>

我只需要验证非空元素。

【问题讨论】:

  • 您的意思是选择了一个选项吗?
  • 欢迎来到 Stack Overflow!你为什么不向我们展示你到目前为止所拥有的东西?当我们看到您为解决问题所付出的努力时,您会发现社区会更有帮助。

标签: javascript jquery jquery-validation-engine


【解决方案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 行崩溃(恕我直言,这是一个错误)。所以你需要从

更改第 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

【讨论】:

  • 最初,选择元素是空的,没有选项项,我在提交表单时需要进行验证。使用validationEngine,可能我需要使用自定义的正则表达式,如果使用所需的类迫使我选择它。
  • 是的,至少有一个选项。使用验证引擎。
  • @Angel 您在这个问题上需要更多帮助吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-12
  • 1970-01-01
  • 2016-05-06
  • 1970-01-01
相关资源
最近更新 更多