我正在尝试同时验证用户名和域(基本上是验证整个电子邮件地址)。当我在两个输入中的任意一个之外单击时,我希望对其进行验证。我有一个用于用户名的输入标签,一个用于可能域的选择标签。
我查看了许多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”消息,但不会显示该消息。我不确定是什么导致该验证器方法无法运行。