注文フォームがあります。フォームの一部が住所です。Company、Street-Address、ZIP、Town、Country が含まれており、必要なすべてのフィールドを含む単純な jquery フォーム検証と、ZIP 番号の検証が行われています。今私が望むのは、それらをグループ化し、成功時に「有効なアドレス」を表示するフィールド、またはエラー時に「アドレスが間違っている」を表示するフィールドを1つだけ持つことです。
これは私のjsコードの一部です:
$("#pageform").validate(
{
messages: {
company_from: addressError, //addressError is a JS var for the error message
street_from: addressError,
zip_from: addressError,
town_from: addressError,
country_from: addressError
},
groups: {
from: "company_from street_from zip_from town_from country_from"
},
errorPlacement: function(error, element) {
if (element.attr("name") == "company_from"
|| element.attr("name") == "street_from"
|| element.attr("name") == "zip_from"
|| element.attr("name") == "town_from"
|| element.attr("name") == "country_from"
)
{
$("#error_from").append(error);
}
},
success: function(label) {
var attribute = $(label[0]).attr("for");
$(".err-ok-" + attribute + " .ok").css("display", "block").css("visibility", "visible");
}
}
);
これは、対応する HTML コードの一部です。
<input type="text" name="company_from" id="company_from" class="required default input-s8" maxlength="255" />
<input type="text" name="street_from" id="street_from" class="required default input-s8" maxlength="255" />
<input type="text" name="zip_from" id="zip_from" class="required digits default input-s8" maxlength="5" onblur="checkCalculation()" />
<input type="text" name="town_from" id="town_from" class="required default input-s8" maxlength="255" />
<!-- and a select list for the country -->
エラーの表示方法などを詳しく調べる必要はありません。私の問題は、いつエラーラベルを表示し、いつ成功ラベルを表示するかわからないことです。郵便番号の文字を入力すると、errorPlacement 関数と success 関数が呼び出されます (そして、errorPlacement が最初に呼び出されます)。少なくとも 1 つのフィールドが正しい場合は、常に success を呼び出していると思います。
ご不明な点がございましたら、お尋ねください。きっとあると思います... :-)