0

注文フォームがあります。フォームの一部が住所です。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 を呼び出していると思います。

ご不明な点がございましたら、お尋ねください。きっとあると思います... :-)

4

1 に答える 1

0

ルールを追加する

    rules: {
     company_from: "required",
     company_from: "required",
     zip_from: "required",
     town_from:"required",
     country_from:"required"
    },
于 2012-04-25T14:41:53.090 に答える