部分的に動作する以下のコードがあります。国がカナダの場合は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'。 3つのオプションがあります:1) '$("#pay_id_1 ")。val()'を数値に変換します。例: '+ $("#pay_id_1 ")。val()=== 1'。 2)数値リテラルを文字列リテラルに変換します。例: '$("#pay_id_1 ")。val()=== '1' '。 3)自動型強制を実行するdouble-equals演算子を使用します:Ex: '$("#pay_id_1 ")。val()== 1'。 – usandfriends