2017-07-19 2 views
-1

Ich habe eine MVC C# App mit einem ViewModel erstellt, die alle Eigenschaften [erforderlich] sind und auch seine fällige Ansicht erstellt haben, mein Problem ist, dass ich das Click-Ereignis von der Submit-Button zu erfassen benötigen, um einige Validierungen zu machen, damit ich‘jQuery beschlossen, verwenden, um auf diese Weise das Click-Ereignis zu erfassen:Verwendung e.preventDefault() in jQuery lässt [erforderlich] MVC

$("#IngresarInfo").click(function (e) { 
      e.preventDefault(); 
      $("#idISSSBuscar").rules("remove", "required"); 
      $.ajax({ ... some code here 

aber wenn ich die e.preventDefault(); die Validierung [verwenden erforderlich] funktioniert (zeigt keine Fehlermeldung) und was ich will, ist zuerst zu validieren, dass alle Formulare Eingaben abgeschlossen sind und danach die Validierung vornehmen.

Könnten Sie mir bitte sagen, was mit meinem Code nicht stimmt?

+1

'was ich will, ist zuerst zu validieren, dass alle Formulare Eingaben abgeschlossen sind und danach die Validierung.' => was meinst du damit? –

+0

'was ich will, ist zuerst zu validieren, dass alle Formulare Eingaben abgeschlossen sind und danach die Validierung machen 'Also wollen Sie die Validierung vor der Validierung durchführen ...? Das macht keinen Sinn Ich habe Angst –

+0

@RoryMcCrossan Ich habe geschrieben: Ich muss das Klickereignis von der Absenden-Schaltfläche erfassen, um einige Validierungen zu machen, klar? –

Antwort

0

Ja, wenn e.PreventDefault() aufgerufen wird, wird der Standardprozess gestoppt. d. h. Ihre serverseitige Controller-Aktion wird standardmäßig nicht aufgerufen.

Aus der Dokumentation jQuery

Wenn diese Methode die Standardaktion des Ereignisses aufgerufen wird, wird nicht ausgelöst werden.

Wenn Sie nach dem Aufruf von e.PreventDefault mit der Controller-Aktion fortfahren möchten, müssen Sie das Formular selbst senden.

Eine andere Frage. Warum überhaupt? Wenn Sie MVC verlassen haben, um die Standardvalidierung des Viewmodels durchzuführen, können Sie in Ihrer Post-Aktion nach Model.IsValid suchen und die ursprüngliche Ansicht mit den Validierungsfehlern zurückgeben.

Es scheint, als ob Sie versuchen, genau dieses Verhalten nachzuahmen, aber ich weiß nicht, was Sie dadurch gewinnen.

+0

Danke, I Ich will es so machen, weil ein Teamkollege es geschafft hat und ich habe mit meiner Logik genau den gleichen Code geschrieben, aber nicht funktioniert –

Verwandte Themen