jQuery跨多个字段验证不起作用

时间:2019-07-19 18:40:34

标签: jquery jquery-validate

我正在尝试同时验证用户名和域(基本上是验证整个电子邮件地址)。当我在两个输入中的任意一个之外单击时,我希望对其进行验证。我有一个用于用户名的输入标签,一个用于可能域的选择标签。

我查看了许多StackOverflow帖子,包括this one,这似乎正是我所需要的。我尝试修改接受的答案中的小提琴,以使差异尽可能小,但是我无法触发对输入的验证。我还看到了this link,并确保不要忽略隐藏的字段。

这是显示问题的fiddle,还有HTML / JS:

<form id="form2">
<div class="usernameAndDomain">

  <input type="hidden" name="usernameAndDomainValidation" class="required">

  <input data-index="" id="userName" name="userName" class="userName required" type="text" maxlength="100">
  <select class="domainForUser userDomain" name="userDomain">
  <option value="address1.com">@address1.com</option>
  <option value="address2.com">@address2.com</option>
  </select>
</div>
    <input type="submit" />
</form>
<a href="http://docs.jquery.com/Plugins/Validation" target="_blank">Validation Documentation</a>
$.validator.setDefaults({ 
    ignore: [],
    // any other default options and/or rules
});
$(document).ready(function () {

    $.validator.addMethod('usernameAndDomainCheck', function(value, element, params) {
/*         var field_1 = $('input[name="' + params[0] + '"]').val(),
            field_2 = $('input[name="' + params[1] + '"]').val();
        return parseInt(value) === parseInt(field_1) + parseInt(field_2); */
        return false;
    }, "Invalid form");

    $("#form2").validate({
       onkeyup: false,
       onclick: false,
       focusCleanup: true,
       focusInvalid: false,
       rules: {
            usernameAndDomainValidation: {
                usernameAndDomainCheck: ['userName', 'userDomain']
            },
        },
        submitHandler: function (form) { // for demo
            alert('valid form');
            return false;
        }
    });

});

由于验证器方法始终返回false,所以我希望显示“ Invalid form”消息,但不会显示该消息。我不确定是什么导致该验证器方法无法运行。

0 个答案:

没有答案