我正在努力使这项工作成功; 此验证应用于付款表单,如您所见,只有 3 个必需的输入,当且仅当
input[type=radio]:checked').val() != "CB";
wich 表示用户是否要使用信用卡以外的其他方式付款。 以下是验证我的表单的完整代码。
$("#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 没有经过验证,即使我的控制台日志记录在正确的时间向我显示“真”或“假”。 我做错了什么?
------------------------编辑---------------- --------------------------
我认为存在某种误解,我的错。抱歉,伙计们。 下面是表单最终的样子:
$("#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”得到验证,而且我希望它在当且仅当它 >= to panierTotal
时才有效现在,我只是在测试是否验证它,但我正在寻找的是一种在 montantRentre >= 到 panierTotal 时返回“有效”的方法。
我是否让 tjis 更清晰了?
最佳答案
我认为您的验证设置不正确。每个表单元素的“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:""
}
});
}
关于javascript - 需要 Jquery 验证插件方法(依赖表达式)使用正常但回调不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1974603/