Проверка JQuery для нескольких входных файлов - PullRequest
0 голосов
/ 03 сентября 2018

У меня есть 4 поля ввода, как показано ниже. enter image description here

Код ниже.

<input class="form-control licence-group" name="LicenceNumber1" id="LicenceNumber1" type="text">

<input class="form-control licence-group" name="LicenceNumber1Date" id="LicenceNumber1Date" type="text">


<input class="form-control licence-group2" name="LicenceNumber2" id="LicenceNumber2" type="text">

<input class="form-control licence-group2" name="LicenceNumber2Date" id="LicenceNumber2Date" type="text">

Я использую это с jQuery Step Plugin .

Я хочу подтвердить это следующими условиями.

  1. Все поля обязательны для заполнения
  2. Если заполнены поля LicenceNumber1 и LicenceNumber1Date, тогда поля LicenceNumber2 и LicenceNumber2Date не нужны.
  3. То же, что если заполнены поля LicenceNumber2 и LicenceNumber2Date, тогда поля LicenceNumber1 и LicenceNumber1Date не нужны.
  4. Требуется каждая пара полей ввода (например, номер лицензии и дата)
  5. Если заполнено 3 поля, необходимо заполнить оставшееся поле. Например: лицензия 1, дата licence1, лицензия 2 заполнена, тогда требуется дата licence2.

Я использовал приведенный ниже код. Но это не работает.

rules: {
            LicenceNumber1: {
                required: function (element) {
                    return (($("#LicenceNumber1Date").is(':empty')) && ($("#LicenceNumber2").is(':empty') || $("#LicenceNumber2Date").is(':empty')) );
                }
            },
              LicenceNumber1Date: {
                  required: function (element) {
                      return (($("#LicenceNumber1").is(':empty')) && ($("#LicenceNumber2").is(':empty') || $("#LicenceNumber2Date").is(':empty')));

                }
            },
            LicenceNumber2: {
                required: function (element) {
                    return (($("#LicenceNumber2Date").is(':empty')) && ($("#LicenceNumber1").is(':empty') || $("#LicenceNumber1Date").is(':empty')));
                }
            },
            LicenceNumber2Date: {
                required: function (element) {
                    return (($("#LicenceNumber2").is(':empty')) && ($("#LicenceNumber1").is(':empty') || $("#LicenceNumber1Date").is(':empty')));  
                }
            } 
        } 

Пожалуйста, предположите, что я изменил идентификаторы ввода на понятные. Если это возможно без плагина проверки jquery и использования обычного jquery, это тоже хорошо. Если кто-то может помочь мне правильно подтвердить это, действительно ценю вашу помощь. Спасибо

1 Ответ

0 голосов
/ 03 сентября 2018
    //logic 1 check all empty
    var rul1 = true;
    //check first row
    var rul2 = true;
    //check secon row
    var rul3 = true;
    if ($('#LicenceNumber1').val() == '' && $('#LicenceNumber1Date').val() == '' && $('#LicenceNumber2').val() == '' && $('#LicenceNumber2Date').val() == '') {
        rul1 = false;
        alert('all empty')
    } else {
        //logic 2 check first row
        if (($('#LicenceNumber1').val() != '' && $('#LicenceNumber1Date').val() == '') || ($('#LicenceNumber1').val() == '' && $('#LicenceNumber1Date').val() != '')) {
            rul2 = false;
            //here write code for show empty labels on first row
            alert('first row invalid')
        }

        //logic 3nd second row
        if (($('#LicenceNumber2').val() != '' && $('#LicenceNumber2Date').val() == '') || ($('#LicenceNumber2').val() == '' && $('#LicenceNumber2Date').val() != '')) {
            rul3 = false;
            //here write code for show empty labels on seconrow
            alert('second row invalid')
        }

    }

    //proceed 
    if (rul1 == true && rul2 == true && rul3 == true) {
        alert('submit')
    }
...