Heim > Web-Frontend > CSS-Tutorial > Wie wende ich die Klassenvalidierung auf dynamische Textfelder in einer Tabelle mithilfe der unaufdringlichen jQuery-Validierung an?

Wie wende ich die Klassenvalidierung auf dynamische Textfelder in einer Tabelle mithilfe der unaufdringlichen jQuery-Validierung an?

Linda Hamilton
Freigeben: 2024-12-22 12:30:11
Original
345 Leute haben es durchsucht

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

Klassenvalidierung für dynamische Textfelder in einer Tabelle festlegen

Das Problem verstehen

Sie haben eine dynamische Tabelle mit Textfeldern und möchten eine Klasse anwenden Validierung für alle diese Textfelder. Die unauffällige Validierung von jQuery registriert die hinzugefügten Textfelder nicht, was dazu führt, dass die Validierung nicht funktioniert.

Behebung des Problems

Um dieses Problem zu beheben, müssen Sie Folgendes tun:

  • Datenattribute hinzufügen: Fügen Sie die erforderlichen Datenvalattribute hinzu Textfelder.
  • Platzhalterelemente generieren: Platzhalterelemente für die Anzeige von Validierungsmeldungen erstellen.
  • Nicht aufeinanderfolgende Indexer zulassen: Fügen Sie eine versteckte Eingabe für die hinzu Indexer, um nicht aufeinanderfolgende Indexer für die geposteten Daten zu aktivieren Sammlung.

Aktualisiertes HTML mit versteckter Indexer-Eingabe

@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>
}
Nach dem Login kopieren

Aktualisiertes JavaScript mit nicht-konsekutiven Indexern

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);
});
Nach dem Login kopieren

Zusätzliche Tipps

  • Nach dem Hinzufügen von Dynamik ist eine unauffällige Neuanalyse der Validierung erforderlich Inhalt.
  • Versteckte Indexer ermöglichen das Löschen nicht aufeinanderfolgender Zeilen.
  • Verwenden Sie CSS für die Gestaltung anstelle von Inline-Stilen.
  • Erwägen Sie die Verwendung von Teilansichten zur Wartbarkeit.

Das obige ist der detaillierte Inhalt vonWie wende ich die Klassenvalidierung auf dynamische Textfelder in einer Tabelle mithilfe der unaufdringlichen jQuery-Validierung an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage