Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery.rules()函数_Javascript_Jquery_Jquery Validate - Fatal编程技术网

Javascript jQuery.rules()函数

Javascript jQuery.rules()函数,javascript,jquery,jquery-validate,Javascript,Jquery,Jquery Validate,我还有一个问题需要添加到堆中的.rules()函数。我知道它应该是在使用.validate()之后出现的,但我在控制台中仍然收到“找不到设置”类型的错误 我之所以不将其作为规则添加到.validate()中,是因为我在一个页面上有多个表单,其中一些表单使用了使用相同名称的have输入(它们是用AJAX提交的,名称字段指向我的DDB列) 代码如下。有什么想法吗 <form id="userForm" class='validate form-horizontal'> <f

我还有一个问题需要添加到堆中的
.rules(
)函数。我知道它应该是在使用
.validate()
之后出现的,但我在控制台中仍然收到“找不到设置”类型的错误

我之所以不将其作为规则添加到
.validate()
中,是因为我在一个页面上有多个表单,其中一些表单使用了使用相同名称的have输入(它们是用AJAX提交的,名称字段指向我的DDB列)

代码如下。有什么想法吗

<form id="userForm" class='validate form-horizontal'>
    <fieldset>
        <legend class="text-center">Not a member yet?</legend>

        <input type="hidden" name="User_ID" id="User_ID">
        <input type="hidden" name="PermissionLevel" id="PermissionLevel" value="1">

        <div class="form-group">
            <label for="RegisterUserName">Email Address:</label>
                <input type="text" name="UserName" id="RegisterUserName" class="required email form-control tooltip-toggle" title="This will be your username" data-placement="right">
        </div>

        <div class="form-group">
            <label for="RegisterUserPassword">Password:</label>
                <input type="password" name="UserPassword" id="RegisterUserPassword" class="required password form-control tooltip-toggle" title="Your password must be between 8-14 characters and can only contain numbers, letters, and the following symbols: @ * _ - . !" data-placement="right" rangelength="[8,14]">
        </div>

        <div class="form-group">
            <label for="RegisterUserPassword2">Confirm Password:</label>
                <input type="password" name="UserPassword2" id="RegisterUserPassword2" class="required password form-control" rangelength="[8,14]">
        </div>

        <div class="form-group">
            <div class="col-sm-12 text-center">
                <button type="button" class="btn btn-primary btn-register form-submit" data-form="registerUsername">Register</button>
            </div>
        </div>
    </fieldset>
</form>

还没有成为会员?
电邮地址:
密码:
确认密码:
登记
$('form.validate')。每个(函数(){
$(此)。验证({
errorElement:'span',
errorClass:'有错误帮助块',
errorPlacement:函数(错误,元素){
if($(element).hasClass('selected-select')| |$(element).hasClass('selected-select-multiple')){
error.appendTo(element.next('.selected container'));
}否则{
元素。之后(错误);
}
},
突出显示:函数(元素、errorClass、validClass){
if($(element).hasClass('selected-select')| |$(element).hasClass('selected-select-multiple')){
$(元素).next('.selected container').find('a').addClass(errorClass).removeClass(validClass);
}
$(元素).最近('.form group').addClass(errorClass).removeClass(validClass);
},
取消高亮显示:函数(元素、errorClass、validClass){
if($(element).hasClass('selected-select')| |$(element).hasClass('selected-select-multiple')){
$(元素).next('.Selected container').find('a').removeClass(errorClass).addClass(validClass);
}
$(元素).最近('.form group').addClass(validClass).removeClass(errorClass);
},
忽略:':隐藏:未(.selected-select):未(.selected-select-multiple)'
});
$.validator.addMethod('USAdate',函数(值、元素、参数){
(1[02[0[2[0[1-0-9[1-9[0-0-2][0-2[0-2[0-0-2][0-9[0-2[0-2][0-9[0-2[0-2[0-2[0-2][0-0-2[0-2[0-2][0-2[0-0-9[0-9 5 5 5-9])124;(3[3[3[0[01[3[0[0[0[1[1[1[0[1[0[0[1[0[1[0-1[0-1[0-1[0-9]5 5[0-9[0-9[0-9]5 5[3[0-9]5 5 5[3[3[3[0-9]))))))124;(3[3[3[3[3[3[3[3[3[3[3[3[3[3[3[3.测试(数值);
返回此。可选(元素)| | isValidDate;
},“请输入有效日期。”);
$.validator.addMethod('phone',函数(值、元素、参数){
var isValidPhone=/^[2-9]\d{2}-\d{3}-\d{4}$/.test(值);
返回此。可选(元素)| | isValidPhone;
},“请输入有效的电话号码。”);
$.validator.addMethod('password',函数(值、元素、参数){
变量isValidPassword=/^[A-Za-z0-9\d=!\-@.\u*]+$/.测试(值);
返回此。可选(元素)| | isValidPassword;
}“,”必须介于8-14个字符之间,仅限数字、字母和以下符号:@*.-!”;
$.validator.addMethod('nnInteger',函数(值、元素、参数){
var isNNInteger=/^\d+$/.test(值);
返回此值。可选(元素)| | IsnInteger;
},“请输入一个非负数。”);
$('#RegisterUserPassword2')。规则('add'{
equalTo:“#RegisterUserPassword”,
信息:{
equalTo:'密码必须匹配。'
}
});
});
$('.form submit')。在('click',function()上{
var form=$(this).closest('form');
开关($(this).data('form')){
案例“registerUsername”:
var loginModal=$('#login');
变量寄存器模式=$(“#寄存器”);
if(form.validate().form()){
$.ajax({
键入:“POST”,
url:'includes/ajax/ajax registerUsername.php',
数据:form.serialize(),
数据类型:“json”,
成功:功能(数据){
如果(data.result=='error'){
loginModal.find('.modal header').addClass('error');
loginModal.find('.modal footer').addClass('error').html('error:提交用户名时出错
'+data.message); 返回false; }否则{ 控制台日志(数据); clientRegistration=data.user; loginModal.modal('hide'); var registerCarousel=registerModel.find(“#registerCarousel”); 模态({background:'static',keyboard:false},'show'); } } }); } 打破 } });
编辑:只需注释掉
.rules()
调用即可删除
未捕获的类型错误:无法读取未定义的
错误的属性“设置”

编辑2:按照建议包装表单验证,添加了一个表单提交示例。

您的代码

$('form.validate').validate({
    onsubmit: true, 
    ....
换句话说,您只能将
onsubmit
设置为
false
或函数。如果您想要默认功能,只需完全忽略它

通过将其设置为
true
,您可能会破坏插件


要在单击按钮时立即进行验证,必须在
按钮
元素上有一个
type=“submit”
。(或包含以编程方式触发验证的代码的
单击
处理程序。)


演示:


编辑

…因为我有使用相同名称的并排表单

未捕获类型错误:无法读取未定义的属性“设置”
错误

显然,您试图通过将类作为目标,将
.validate()
方法附加到多个
表单

$('form.validate').validate({ ...
如果是这样,则必须使用jQuery
.each()
将方法附加到多个表单元素,从而分别初始化每个表单


编辑2

OP已编辑到代码中不再出现上述问题的程度

我看到你又编辑了这个问题。ajax表单提交代码应该包含在
submitHandler
回调函数中。

$('form.validate').each(function() { $(this).validate({ ....
$('form.validate').each(function() {
  //.validate() stuff here
  switch ($(this).attr('id')) {
    case 'userForm':
      $('#RegisterUserPassword2').rules('add', {
        equalTo: '#RegisterUserPassword',
        messages: {
          equalTo: 'Passwords must match.'
        }
      });
      break;
    case 'passForm':
      $('#NewPassword2').rules('add', {
        equalTo: '#NewPassword',
        messages: {
          equalTo: 'Passwords must match.'
        }
      });
      break;
  }
});