2017-07-09 6 views
0

Ich habe ein Formular, das ich mit jQuery validieren.Wie bekomme ich jQuery ein Formular an einen Beitrag senden

<form id="target" class="center-block" action="/" method="POST"> 
    <textarea class="form-control" id="name" rows="3" name="name" placeholder="Enter a burger you would like to devour!"></textarea> 
    <button type="button" id="submit" class="center-block btn btn-default top">Submit</button> 
</form> 

Nach der Validierung versuche ich auch, das Formular über jQuery zu übermitteln.

if (validateForm() == true) { 
    $("#target").submit(); 
} 

Die Validierung jedoch funktioniert, es scheint nicht, wie das Formular an den Pfosten Route einreicht. Ich konnte das Formular mit Ajax posten, aber der Post würde nach dem Beenden nicht weiterleiten. Hatte gehofft, dass diese Methode die gewünschte Wirkung haben würde.

Die App läuft auf Express und mit MySQL.

+0

Via Ajax oder nicht? –

+0

Was ist der "gewünschte Effekt", den Sie suchen? Wenn du die gleiche Seite einreichst, nimm die/out-Aktion. – Difster

+0

Wenn die Validierung funktioniert und die Seite umgeleitet wird, funktioniert es. Es gibt nichts, was irgendjemand sonst tun könnte. – adeneo

Antwort

0

Ich glaube nicht, dass Ihre Jquery submit funktioniert, weil ein Element id or name submit die form.submit Methode ersetzen wird, sollten Sie einfach ID ändern (Name sollte auch nicht geben).

<button type="button" id="changeThisId" class="center-block btn btn-default top">Submit</button> 
+0

Und jetzt fühle ich mich dumm, da es auch in der Dokumentation in den zusätzlichen Hinweisen steht. [https://api.jquery.com/submit/](https://api.jquery.com/submit/) – Adam

0

Verwenden Ajax und wenn Sie möchten auf die aktuelle Seite, auf Erfolg neu zu laden, die aktuelle Seite

$.ajax({  
    url: yourUrl, 
    type: "post", 
    data: $("#target").serialize(), 
    success: function(r){ 
     //form posted successfully 
     window.location.reload(); 
    }, 
    error: function(error){ 
     alert(error); 
    } 
}); 
0

ich dort einen Tippfehler haben könnte umleiten, aber die Idee ist:

$('#target').submit(function(event){ 
    event.preventDefault(); 
}).validate({ 
    rules: { ... }, 
    submitHandler: function(form){ 
     $.ajax{ 
      type: 'POST', 
      data: $(form).serialize(), 
      url: '/', 
      success: function(result){ 
       console.log(result); 
      } 
      error: function(err){ 
       console.log(err.message); 
      } 
     } 
    }); 
}); 
Verwandte Themen