input[type=radio]:checked').val() != "CB";
这意味着用户是否要用信用卡支付其他费用。 以下是验证表单的完整代码。
$("#paiement").validate({
errorClass: "invalid",
validClass: "success",
rules: {
referenceTypeComplementBancaire: true,
banque: {
required: function(nomBanque){
return $('#paiement input[type=radio]:checked').val() != "CB";
}
},
numeroComplementBancaire: {
required: function(numeroCompl){
return $('#paiement input[type=radio]:checked').val() != "CB";
}
},
montantComplementBancaire: {
required: function(montantCompl){
var logg = montantRentre >= panierTotal;
console.log(logg);
return montantRentre >= panierTotal;
}
}
},
messages: {
referenceTypeComplementBancaire: "",
banque:"",
numeroComplementBancaire:"",
montantComplementBancaire:""
}
});
}
没什么难的,真的。 但是,我很难理解为什么montantComplementBancaire没有经过验证,即使我的控制台记录在合适的时间显示我'真'或'假'。 我做错了什么?
---------------------------- EDIT ------------------ ------------------------
我认为存在某种误解,我的错。对不起,伙计们。 这是表格最终的样子:
$("#paiement").validate({
errorClass: "invalid",
validClass: "success",
rules: {
referenceTypeComplementBancaire: true,
banque: {
required: function(nomBanque){
return $('#paiement input[type=radio]:checked').val() != "CB";
}
},
numeroComplementBancaire: {
required: function(numeroCompl){
return $('#paiement input[type=radio]:checked').val() != "CB";
}
},
montantComplementBancaire: {
required: function(){
var logg = panierTotal > montantRentre;
console.log(logg);
return panierTotal > montantRentre;
}
}
},
messages: {
referenceTypeComplementBancaire: "",
banque:"",
numeroComplementBancaire:"",
montantComplementBancaire:""
}
});
我哪里出错了?我不仅需要验证“montantComplementBancaire”,而且我希望它是有效的IF,并且只要它的> =到panierTotal
现在,我只是测试是否验证它,但我正在寻找的是当montantRentre> = panierTotal时返回'有效'的方法。
我是否更清楚了?
答案 0 :(得分:2)
尝试return logg;
或return (montantRentre >= panierTotal);
您的代码看起来不错,似乎与此处的示例匹配(http://docs.jquery.com/Plugins/Validation/Methods/required#dependency-callback)。 required
属性不需要是具有depends
属性的对象,它可以像您一样使用依赖回调函数。
您也可以尝试
if(montantRentre >= panierTotal) {
return true;
} else {
return false;
}
答案 1 :(得分:2)
我认为您的验证设置不正确。每个表单元素的“required”属性应该是一个JavaScript对象,其中“depends”属性设置为一个函数,假设你要做的是条件要求。请参阅验证选项页面上的“规则”条目:http://docs.jquery.com/Plugins/Validation/validate#toptions
我认为固定代码是:
$("#paiement").validate({
errorClass: "invalid",
validClass: "success",
rules: {
referenceTypeComplementBancaire: 'required',
banque: {
required: {
depends: function(nomBanque){
return $('#paiement input[type=radio]:checked').val() != "CB";
}
}
},
numeroComplementBancaire: {
required: {
depends: function(numeroCompl){
return $('#paiement input[type=radio]:checked').val() != "CB";
}
}
},
montantComplementBancaire: {
required: {
depends: function(montantCompl){
var logg = montantRentre >= panierTotal;
console.log(logg);
return montantRentre >= panierTotal;
}
}
}
},
messages: {
referenceTypeComplementBancaire: "",
banque:"",
numeroComplementBancaire:"",
montantComplementBancaire:""
}
});
}
答案 2 :(得分:1)
required: function(montantCompl){
var logg = montantRentre >= panierTotal;
console.log(logg);
return montantRentre >= panierTotal;
}
为什么要定义一个你从未使用的参数function(montantCompl){
?你的意思是真的要与之进行比较吗?即使你没有,在匿名函数中使用全局变量进行比较也不是一个好主意,因为它会导致模糊,就像现在我正试图帮助你解决问题一样。如果在某处定义了这些值,请在您的问题中包括它们,包括它们改变状态的任何点。