我得到了以下代碼部分工作。我需要驗證加拿大郵政,如果國家是加拿大pay_id_1 == 1
或美國郵政編碼,如果pay_id_1 == 234
。jquery驗證郵政編碼的規則
var validator = $form.validate({
ignore: ".ignore,:hidden:not(input[type='hidden'])",
rules: {
par_prenom_1: {
required: true
},
par_nom_1: {
required: true
},
par_adresse_1: {
required: true
},
par_ville_1: {
required: true
},
pro_id_1: {
required: true
},
pay_id_1: {
required: true
},
par_codepostal_1: {
required: true,
postalCodeCA: function() {
if ($("#pay_id_1").val() === 1) {
return true
} else {
return false
}
},
zipcodeUS: function() {
if ($("#pay_id_1").val() === 234) {
return true
} else {
return false
}
}
},
par_telephone1_1: {
required: true
},
par_courriel_1: {
required: true,
email: true
},
par_naissance_1: {
required: true,
dateCA: true,
daterange: ["1917-09-04", "2001-09-03"]
},
par_sexe_1: {
required: true
},
que_2580_1: {
required: true
},
que_2581_1: {
required: true
},
que_2582_1: {
required: true
},
que_2583_1: {
required: true
}
},
messages: {
par_prenom_1: {
required: "Veuillez entrer une valeur"
},
par_nom_1: {
required: "Veuillez entrer une valeur"
},
par_adresse_1: {
required: "Veuillez entrer une valeur"
},
par_ville_1: {
required: "Veuillez entrer une valeur"
},
pro_id_1: {
required: "Veuillez entrer une valeur"
},
pay_id_1: {
required: "Veuillez entrer une valeur"
},
par_codepostal_1: {
required: "Veuillez entrer le code postal/zip",
postalCodeCA: "Veuillez entrer un code postal/zip valide"
},
par_telephone1_1: {
required: "Veuillez entrer le numéro de téléphone",
phoneUS: "Le numéro de téléphone doit être sous le format 555-555-5555"
},
par_courriel_1: {
required: "Veuillez entrer le courriel",
email: "Le courriel doit être une adresse valide"
},
par_naissance_1: {
required: "Veuillez entrer la date de naissance",
dateCA: "La date de naissance doit être sous le format AAAA-MM-JJ",
daterange: "La date de naissance doit être entre {0} et {1}"
},
par_sexe_1: {
required: "Veuillez entrer une valeur"
},
que_2580_1: {
required: "Veuillez faire un choix"
},
que_2581_1: {
required: "Veuillez entrer une valeur"
},
que_2582_1: {
required: "Veuillez entrer une valeur"
},
que_2583_1: {
required: "Veuillez entrer une valeur"
}
}
});
問題是這兩個規則適用於任何國家。你能看到我不能?
帖子相關HTML這樣一個演示可以構造。當你在這個時候,去掉所有不相關的領域。只是一個證明問題的最小例子。 – Sparky
此外,您還嚴格檢查'$(「#pay_id_1」)。val()',它返回一個字符串,數字文字,'1'和'234'之間的相等性。即使'$(「#pay_id_1」)。val()'是'234',每次都會失敗。 ''234'=== 234 ==> false'。您有三種選擇:1)將$(「#pay_id_1」)。val()'轉換爲數字。例如:'+ $(「#pay_id_1」)。val()=== 1'。 2)將數字文字轉換爲字符串文字。例如:'$(「#pay_id_1」)。val()==='1''。 3)使用運行自動類型強制的double-equals運算符:例如:$(「#pay_id_1」).val()== 1'。 – usandfriends