3

フォームを検証するための次のスクリプトがあります。正常に動作していますが、すべての検証エラーメッセージを<span class="errormsg"></span>各入力の横に個別に表示するのではなく、カンマで区切って表示しようとしています。

私はjqueryについてほとんど知識がありません。これを達成する方法がわかりません。見せてくれませんか。

ありがとう :)

<script>
  $(document).ready(function() { 
    // validate signup form on keyup and submit 
    var validator = $("#signupform").validate({
      rules: {
  customerid: "required",
  date: "required",
  invoiceid: {
    required: true,
    minlength: 2,
    remote: "<? echo base_url();?>mycontroller/function" }
  },
      messages: {
    customerid: "Enter your customerid",
    date: "Enter your date",
    invoiceid: {
       required: "Enter a invoiceid",
       minlength: jQuery.format("Enter at least {0} characters"),
       remote: jQuery.format("{0} is already in use")
    },
      }
    });
  });
</script>

私のフォーム

<label>Invoice #</label>
<input type="text" name="invoiceid" id="invoiceid" value="" />

<label  style="margin-left:20px;">Date</label>
<input type="text" id="datepicker1" name="date" value=""  />

<label  style="margin-left:20px;">Customer</label>
<input type="text" id="customerid" name="customerid" value=""  />
4

1 に答える 1

13

私はshowErrorsこれを達成するためにオプションを使用します:

showErrors: function(errorMap, errorList) {
    $(".errormsg").html($.map(errorList, function (el) {
        return el.message;
    }).join(", "));
},

例: http: //jsfiddle.net/bd3zM/

ノート:

  • 関数に渡され$.mapた引数に基づいてエラーメッセージの配列を構築するために使用します。errorList
  • 次に、を使用.join(", ")して上記の配列を1つの文字列に結合します。
  • errormsgを使用して、クラスを持つ要素内にコンテンツを配置しhtmlます。
于 2012-05-28T18:08:45.487 に答える