wake-up-neo.com

formular nach Bestätigung absenden

Ich habe folgendes Formular:

<form id="form" action="comments.php" method="post">
  <ul>
    <li><div class="formbox_titles">Name</div><input type="text" name="name" class="required comm_input" /></li>
    <li><div class="formbox_titles">Email</div><input type="text" name="email" class="required comm_input"/></li>
    <li><div class="formbox_titles">Message</div><textarea name="message" class="required comm_text"></textarea></li>
    <li><input type="submit" value="Submit"></li>
  </ul>
</form>

und folgende JQuery zur Formularübergabe:

target: '#preview', 
  success: function() { 
  $('#formbox').slideUp('fast'); 
}

Nun ist das Problem, dass ich auch JQuery-Code zur Formularüberprüfung habe

$().ready(function() {
    // validate comment form
    $("#form").validate({ 
    });
});

Beide funktionieren gut und Formular zeigt eine Warnung an, dass alle drei Felder nicht leer sein dürfen, das Datum im Formular jedoch trotzdem in die Datenbank übertragen wird. Ich verwende folgenden Code für die Formularvalidierung http://bassistance.de/jquery-plugins/jquery-plugin-validation/ Die Frage ist also, wie Sie die erste Jquery als zweite hinzufügen, also zuerst die erforderlichen Felder ausführen sind gefüllt?

Hoffe, dass jemand helfen wird. Vielen Dank.

9

Wenn Sie das Formular manuell senden möchten, müssen Sie das jQuery-gebundene Ereignis umgehen. Sie haben folgende Möglichkeiten:

$('#form_id')[0].submit();

oder

$('#form_id').get(0).submit();

[0] oder get (0) gibt Ihnen das DOM-Objekt anstelle des jQuery-Objekts.  

13

Aus Ihrem Beispiel bin ich nicht klar über den Kontrollfluss Ihrer Seite. Ich gehe jedoch davon aus, dass Sie die submit()-Methode irgendwo aufrufen. Nachdem Sie das Formular validiert haben und bevor Sie es abschicken, überprüfen Sie die Validierung mit der valid()-Methode. Ihr Code sollte ungefähr so ​​aussehen:

$("#form").validate();
if ($('#form').valid())
    $('#form').submit();
11
Abbas

Ich weiß nichts über Ihr Validierungs-Plugin, aber normalerweise könnten Sie diesen Code verwenden

<script>

    $("form").submit(function() {
      if (validationIsTrue()) {
        return true;
      }
      else {
        return false;
      }
    });
</script>

Sie müssen Ihre Validierung vornehmen und dann true/false zur Übermittlungsfunktion des Formulars zurückgeben. Wenn das Plugin einen bool-Wert zurückgibt, können Sie Folgendes versuchen:

$("form").submit(function() {
   return $(this).validate({ .... });
});
4
Grrbrr404

Wenn Sie sagen, dass das "Datum innerhalb des Formulars gesendet" ist, macht das für mich keinen Sinn, da ich in Ihren Code-Schnipseln nichts als "Datum" sehe. 

Ich habe das .validate () -Plugin ausgiebig verwendet ... Was ich Ihnen sagen kann, kann helfen, dass das Validierungs-Plugin, das Sie verwenden, über eine submitHandler-Funktion verfügt, die Sie verwenden können.

// validate comment form
$("#form").validate({
submitHandler : function(form) {
    //do something here
    form.submit();
}
});

Der submitHandler wird nur aufgerufen, wenn alle Validierungsregeln erfüllt sind. In Ihrem Fall haben Sie nämlich drei Felder mit "Pflichtfeld", was bedeutet, dass dieses Formular NICHT übermittelt wird, es sei denn, alle drei Felder haben einen Wert.

Damit kann ich Ihnen mit Sicherheit sagen, dass mit den bereitgestellten Informationen nichts auf das von Ihnen beschriebene Problem hinweist. Durch die Bereitstellung von mehr und besseren Informationen können wir herausfinden, was falsch ist.

2
kasdega

Sie können submitHandler über das JQuery-Formular für das Validieren von Plugins verwenden

<script type="text/javascript" src="resources/jquery.min.js" ></script> 
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/jquery.validate.min.js"></script>
<script type='text/javascript'>
$(document).ready(function() {
    $(".form").validate({
        rules: {
            userName: {
                required: true
            },
            password: {
                required: true
            }
        },
        messages: {
            userName: {
                required: "specify userName"
            },
            password: {
                required: "specify password"
            }
        },
        errorClass: "help-inline text-danger",
        errorElement: "span",
        highlight: function(element, errorClass, validClass) {
            $(element).parents('.form-group').addClass('has-error');
        },
        unhighlight: function(element, errorClass, validClass) {
            $(element).parents('.form-group').removeClass('has-error');
            $(element).parents('.form-group').addClass('has-success');
        },
        submitHandler: function(form,e) {
            e.preventDefault();
            console.log('Form submitted');
            $.ajax({
                type: 'POST',
                url: 'authenticate.jsp',
                dataType: "html",
                data: $('form').serialize(),
                success: function(result) {
                    window.location.href = "dashboard.jsp";
                },
                error : function(error) {

                }
            });
            return false;
        }
    });

});  
</script>
0
Raju