我试图解决我的问题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'
}
}
});
我没有消息,没有,就像我的规则不存在一样! 我做了什么坏事?
答案 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验证完全不合时,这才会触发表单提交。
请试一试。