如何使用 Jquery 验证插件添加自定义表单验证以进行多选输入?

发布于 2024-11-03 13:18:59 字数 669 浏览 1 评论 0原文

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

  • Code1(A)
  • Code2(A)
  • Code3(B)
  • Code4(C)
  • Code5(A)
  • Code6(B)
  • Code7(C )

<选择 id="code_ids" multiple="multiple" name="codes[code_ids][]"> <选项值=“1”>代码1(A) <选项值=“2”>代码2(A) <选项值=“3”>代码3(B) <选项值=“4”>代码4(C) <选项值=“5”>代码5(A) <选项值=“6”>代码6(B) <选项值=“7”>代码7(C)

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

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

I need to create a custom jquery form validation using Jquery Validation Plugin where the multiselect option has following kind of values:

  • Code1(A)
  • Code2(A)
  • Code3(B)
  • Code4(C)
  • Code5(A)
  • Code6(B)
  • Code7(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>

The custom validation needs to specify that the options must include atleast two options from A, one from B and two from C. I think I need to use Regex to compare the names of the selected options to check whether they belong to A, B or C.

Also, please specify any article or resources that explain the creation of Custom Form Validations using Jquery Validation Plugin. Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

哭泣的笑容 2024-11-10 13:18:59

jquery 中有 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()

以及 工作演示

there is addMethod in jquery validate

the 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>

and the 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()

and a WORKING DEMO

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文