jQuery验证多个输入字段

时间:2018-09-03 10:27:33

标签: jquery jquery-validate jquery-steps

我有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个字段,则需要其他剩余字段。 EG:许可证1,许可证1的日期,必须先填写许可证2,然后许可证2的日期。

我使用了以下代码。但这不起作用。

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')));  
                }
            } 
        } 

请假定我将输入ID更改为可以理解。如果没有jquery验证插件并且使用普通jquery是可行的,那也很好。 如果有人可以帮助我正确验证这一点,则非常感谢您的帮助。 谢谢

1 个答案:

答案 0 :(得分:0)

    //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')
    }