2012-04-12 10 views
0

Verwenden MVC 3 auf ein neues Projekt und auf die Lernkurve.MVC 3-Validierung: Wie kann ich übereinstimmende Eingabeelemente ohne Verwendung eines Formulars validieren?

Situation: Ich habe Eingangs-Tags (unaufdringlich Validierung verwendet wird) in einem <tr> und ich möchte unabhängig für jeden <tr> über $.ajax die Werte zu übermitteln, aber erst, nachdem sie gültig sind. Ich kümmere mich darum, was/wie ich von den Eingängen ablese, um sie an den Server zu übertragen.

Optionen: Legen Sie jedes Formular in eine <tr> und validieren Formular ?? #multiple <td> Elemente ODER Ändern Sie mein Layout von Tabellen ?? # real

Frage: Gibt es eine Möglichkeit, eine Reihe von Eingaben zu validieren, z. $("#tr1 input").validate()?

Hilfe.

+0

Warum möchten Sie kein Formular verwenden? Das gesamte Validierungssystem basiert auf Formularen, ebenso wie HTML. Auch wenn Sie Ajax verwenden, sollten Sie immer noch ein Formular verwenden. –

+0

Ich würde ein Formular für jede '' benötigen, aber es hat mehrere '' s. '

' ?? Andere Tags verursachen Layoutprobleme. –

+0

Nein, Sie haben kein Formular für jeden tr. Das ist sowieso kein legales HTML. Sie haben ein Formular für die Tabelle, aber Sie verwenden eine oder mehrere Methoden, um die Post-Methode zu bestimmen, mit welchem ​​Datensatz Sie beschäftigen (normalerweise eine ID in einem aktuellen Datensatz versteckt oder ähnlich) –

Antwort

0

entschied ich mich MVC Validierung zu Graben und meine eigene Validierung behandeln (FREIHEIT! Eine Kreuzung zwischen COLD TOLD und Michael Franc wertvollen Input) mit Hilfe der Validity-Bibliothek: http://validity.thatscaptaintoyou.com/ Ich liebe die Flexibilität mit diesem und erfordert nicht die Verwendung von Formen, nur einige gemeinsame Konvention in Ihrer Anwendung z. B. class="required" und erstellen eine wiederverwendbare Funktion mit Zeilen wie: $(".required").require();. Funktioniert wunderbar mit beiden Formen oder Ajax.

Vielen Dank für Ihre Beiträge.

0

warum nicht Ihre eigene Validierung schreiben in einer Art das Element Validierung vor Ajax läuft so etwas wie dieses

var value=$("#tr1 input").val() /// this might cahnge depending on what value you are sending 
    var validator=false; 
    if(value!="") 
    { 
    validator=true; 

    } 

    if(validator) 
    { 
    $.ajax({ 
     url: 'ajax/test.html', 
     success: function(data) { 
     $('.result').html(data); 
     alert('Load was performed.'); 
     } 
    }) 
    } 
+0

Danke für Ihre schnelle Antwort, aber ich Ich möchte die Validierung verwenden, die mit '@ Html.EditorFor' geliefert wird, die Attribute aus dem Modell liest, sonst verliert MVC an Bedeutung. –

0

Unauffällig Validierung in Asp.Net Mvc intern mit Jquery Validierung Plugin sein könnte. Wenn HTML-Metadatenattribute auf Ihre Elemente hinzugefügt werden, erstellt und, glaube ich, dass Sie sie und etwas tun können:

$("#myform").validate().element("selector"); 

Von http://docs.jquery.com/Plugins/Validation/Validator/element#element

+0

Danke, das ist eine gute Idee. Sie schlagen also eine globale Form vor, die ich vermute. Ich denke: '$ (" # tr1 input "). Je (function() {$ (" # form "). Validate(). Element ($ this)});' bis ich einen Fehler erhalte. Wird es die Nachricht neben dem Etikett anzeigen, z. "Name (erforderlich"? –

+0

Ein Formular auf der Seite und dann ... $ ("form"). Validate(). Element ("# tr1 input"); –

Verwandte Themen