首頁 > web前端 > css教學 > 如何使用 jQuery 非侵入式驗證將類別驗證套用至表中的動態文字方塊?

如何使用 jQuery 非侵入式驗證將類別驗證套用至表中的動態文字方塊?

Linda Hamilton
發布: 2024-12-22 12:30:11
原創
366 人瀏覽過

How to Apply Class Validation to Dynamic Textboxes in a Table Using jQuery Unobtrusive Validation?

為表中的動態文字方塊設定類別驗證

理解問題

您有一個帶有文字方塊的動態表,並且想要應用類別對所有這些文字方塊的驗證。 jQuery 的非侵入式驗證未註冊新增的文字框,導致驗證無法正常運作。

解決問題

要解決此問題,您需要:

  • 新增資料屬性: 將必要的data-val 屬性新增至文字方塊。
  • 產生佔位符元素: 建立用於顯示驗證訊息的佔位符元素。
  • 允許非連續索引器: 包含隱藏輸入索引器為發佈的內容啟用非連續索引器集合。

使用索引器隱藏輸入更新了HTML

@for (int i = 0; i < Model.TargetInfo.Count; i++)
{
    <tr>
        <td>
            @Html.TextBoxFor(m => m.TargetInfo[i].TargetColor_U, new { id = "", @class = "form-control" })
            @Html.ValidationMessageFor(m => m.TargetInfo[i].TargetColor_U)
            <input type="hidden" name="TargetInfo.Index" value=@i />
        </td>
        <!-- Other columns with similar markup -->
    </tr>
}
登入後複製

使用非連續索引器更新了JavaScript

var form = $('form');
var newrow = $('#newrow');
var tablebody = $('#tablebody');

$("#btnAddTarget").click(function() {
    var index = (new Date()).getTime();
    var clone = newrow.clone();
    clone.html($(clone).html().replace(/#/g, index));
    var row = clone.find('tr');
    tablebody.append(row);

    // Reparse the validator using unobtrusive validation
    form.data('validator', null);
    $.validator.unobtrusive.parse(form);
});
登入後複製

其他提示

  • 其他提示
  • 其他提示
其他提示其他提示其他提示 新增動態後需要重新解析不顯眼的驗證內容。 隱藏索引器可以刪除不連續的行。 使用 CSS 進行樣式設置,而不是內聯樣式。 考慮使用部分視圖以實現可維護性。

以上是如何使用 jQuery 非侵入式驗證將類別驗證套用至表中的動態文字方塊?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板