【问题标题】:How to add custom form validation using Jquery Validation Plugin for multiselect input?如何使用 Jquery Validation Plugin 为多选输入添加自定义表单验证?
【发布时间】:2011-04-27 19:08:44
【问题描述】:

我需要使用 Jquery Validation Plugin 创建自定义 jquery 表单验证,其中多选选项具有以下类型的值:

  • 代码1(A)
  • 代码2(A)
  • 代码3(B)
  • 代码4(C)
  • 代码 5(A)
  • 代码6(B)
  • 代码7(C)

<select id="code_ids" multiple="multiple" name="codes[code_ids][]"> <option value="1">Code1(A)</option> <option value="2">Code2(A)</option> <option value="3">Code3(B)</option> <option value="4">Code4(C)</option> <option value="5">Code5(A)</option> <option value="6">Code6(B)</option> <option value="7">Code7(C)</option> </select>

自定义验证需要指定选项必须包含至少两个来自A的选项,一个来自B,两个来自C。我想我需要使用Regex来比较所选选项的名称以检查它们是否属于A 、B 或 C。

另外,请指定解释使用 Jquery 验证插件创建自定义表单验证的任何文章或资源。提前致谢。

【问题讨论】:

    标签: jquery forms multi-select client-side-validation


    【解决方案1】:

    在 jquery validate 中有addMethod

    html

    <form id="myform" action="#" method="post" name="myform">
        <select id="code_ids" multiple="multiple" class="meets" name="codes[code_ids][]">
            <option value="1">
                Code1(A)
            </option>
            <option value="2">
                Code2(A)
            </option>
            <option value="3">
                Code3(B)
            </option>
            <option value="4">
                Code4(C)
            </option>
            <option value="5">
                Code5(A)
            </option>
            <option value="6">
                Code6(B)
            </option>
            <option value="7">
                Code7(C)
            </option>
        </select>
        <input id="test" type="submit" value="submit">
    </form>
    

    和 jQuery

    $.validator.addMethod("meets", function(value,element) {
       var  txt = $('option:selected',element).text();
       var a = txt.match(/\(A\)/g);
       var b = txt.match(/\(B\)/g);
       var c = txt.match(/\(C\)/g);
        if(a && b && c){
                if(a.length >1 && b.length > 0 && c.length > 1 ) {
                return true;
            }else{
                return false;
            }
        }else{
            return false;
        }
    }, "you have not selected enough eleemnts from each group");
    
    
    $("#myform").validate()
    

    还有一个WORKING DEMO

    【讨论】:

      猜你喜欢
      • 2013-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-04
      • 2012-09-16
      相关资源
      最近更新 更多