Как добавить пользовательскую проверку формы, используя плагин Jquery Validation для множественного выбора? - PullRequest
0 голосов
/ 27 апреля 2011

Мне нужно создать пользовательскую проверку формы jquery с помощью плагина Jquery Validation, где опция множественного выбора имеет следующие значения:

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

В пользовательской проверке необходимо указать, что параметры должны включать как минимум два параметра из A, один из B и два из C. Я думаю, что мне нужно использовать Regex длясравните имена выбранных опций, чтобы проверить, принадлежат ли они A, B или C.

Также, пожалуйста, укажите любую статью или ресурсы, которые объясняют создание пользовательских форм проверки с помощью плагина Jquery Validation.Заранее спасибо.

1 Ответ

1 голос
/ 28 апреля 2011

есть addMethod в jquery validate

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

и РАБОТАЮЩИЙDEMO

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...