Jquery Validate:如果输入具有特定值:error

时间:2017-04-25 15:20:06

标签: javascript jquery html ajax validation

我试图解决我的问题6个小时。

我使用jQuery Validation插件。

我有一个带密码输入的表单。如果密码错误(AJAX请求告诉我),另一个输入的值为0。 如果此输入没有值或值0,我希望我的表单不被提交。

但它不起作用,我无法解释原因。

这是我的HTML:

<form method="post"  action="ajax/traitement.php"   id="form-durabilite" class="col-lg-12">
    <input type="text" id="switch" name="input_cache" value=""/>
    <input type="password" name="signature" id="sign"/>
    <input class="btn btn-lg btn-warning" type="submit"value="Envoyer" />

</form>

我的jQuery:

$('#form-durabilite' ).validate({
    rules: {
        signature: {
            required:function(element) {
                return $('#switch').val() == 0 || $('#switch').val() == ''
            }
        }
    },
    messages: {
        signature: {
            required:'Votre mot de passe est obligatoire'
        }
    }
});

我没有消息,没有,就像我的规则不存在一样! 我做了什么坏事?

2 个答案:

答案 0 :(得分:2)

您可以使用这样的正则表达式,而不是在规则中编写函数:

这个[$ .validator.addMethod]是根据给定正则表达式检查输入值的常用方法

 $.validator.addMethod("regx", function(value, element, regexpr) {
       var re = new RegExp(regexpr);
       var ret = re.test(value);
       return ret;
    });

$('#form-durabilite' ).validate({
    rules: {
        signature: {
            required:true,
            regx:"^[^0-9]{6}$" // Here you can give regular expression for validating you input values
        }
    },
    messages: {
        signature: {
            required:'Votre mot de passe est obligatoire',
            regx:'Le mot de passe n'est pas valide'
        }
    }
});

我希望它会对你有所帮助。

答案 1 :(得分:0)

请参阅how to submit form only if validation is success

添加 submitHandler 参数以及 form.submit()。只有当jQuery验证完全不合时,这才会触发表单提交。

请试一试。