私は jquery の検証にまったく慣れていないので、簡単なテーマであなたの助けが必要です。
動的テーブルを検証しています。このテーブルには、行を追加するボタンがあります。フィールドの 1 つはパーセンテージで、すべての行のパーセンテージの合計が 100% であるかどうかを検証しています。しかし、パーセンテージ フィールドにエラー メッセージや無効なクラスを添付することはできません。グループについて読みましたが、行数がわからないため、「動的」グループを作成する方法を管理できません。行フィールドには、Percentage[0]、Percentage[1] などの名前と、.NET MVC3 によって生成された ID があります。
お願いです、これで手を貸してくれませんか?どこかで有用な情報をスキップしていると確信しています...誰かが私を正しい方法で配置できますか?
よろしくお願いします。
よろしく。
編集:
はい、すみません。これが私のコードです:
現時点では、必要なすべてのフィールドを取得するためにクラス検証を使用していますが、現在、div にエラーを表示できません。エラーを 1 つだけ表示したいのですが、すべてのパーセンテージ フィールドを一度に検証します。
<script type="text/javascript">
$.validator.addMethod("checksum", function (value, element, params) {
var sum = 0;
$(params.elements).each(function (i, e) {
sum = sum + parseInt($(e).val());
});
return sum == params.total;
}, $.format("The percentage fields must equal {1} "));
$.validator.addClassRules({ totalize: { checksum: { elements: ".totalize", total: 100}} });
$("#myform").validate({ errorPlacement: function (error, element) {
if (element.hasClass("totalize")) {
error.appendTo("#errors")
} else {
error.insertAfter(element);
}
});
$(function () {
var $clone = $('<tr><td><input type="text" value="" name="Person[].Name"></td><td><input type="text" value="" name="Person[].Percentage" class="totalize"></td></tr>');
$("#AddPerson").on("click", function () {
$clone.clone().appendTo("#people");
});
});
</script>
<div class="percentages">
<table class="">
<caption>
Percentages
</caption>
<thead>
<tr>
<th>
Name
</th>
<th>
<button id="AddPerson" type="button">Add</button>
</th>
</tr>
</thead>
<tbody id="people">
<tr>
<td>
<input type="text" value="" name="Person[].Name">
</td>
<td>
<input type="text" value="" name="Person[].Percentage" class="totalize">
</td>
</tr>
</tbody>
</table>
<div id="errors">
</div>
</div>