Wie zur Bestätigung ein Formular mit Bootbox mit jQuery, AJAX und JSON

Arbeite ich in einer web-Anwendung mit Spring MVC. Ich versuche zu zeigen, einen dialog zur Bestätigung vor dem Absenden eines Formulars mit Bootbox, aber ich bin immer ein 500 internal server error.

Dies ist mein form:

<form id="checkout-form" class="smart-form" novalidate="novalidate">
  ...some fields
  <button type="button" class="btn btn-primary" onclick="insertFunction()">
    Accept
  </button>
</form>

Dies ist mein insertFunction()

function insertFunction(){

  var name = $('#name').val();
  var lastname = $('#lastname').val();

  var confirmSend;

  var json = {"name": name,"lastname": lastname};

  $.ajax({
    type: "POST",
    url: "register/insertPerson",
    data: JSON.stringify(json),
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    cache: false,
    beforeSend: function (xhr){
      bootbox.dialog({
        message: "I am a custom dialog",
        title: "Custom title",
        buttons: {
          success: {
            label: "Success!",
            className: "btn-success",
            callback: function() {
              //I DONT KNOW WHAT TO DO HERE
            }
          },
          danger: {
            label: "Danger!",
            className: "btn-danger",
            callback: function() {
              return false;
            }
          }
        }
      });

      xhr.setRequestHeader("Accept", "application/json");
      xhr.setRequestHeader("Content-Type", "application/json");
    },
    success: function (data){
      if (data.message === true){
        bootbox.alert("OPERATION WAS EXECUTED WITHOUT PROBLEMS");
      } else {
        bootbox.alert("OPERATION FAILED");
      }
    },
    error: function (xhr, ajaxOptions, thrownError){
      alert(xhr.status);
      alert(xhr.responseText);
      alert(thrownError);
    }
  });
}

Schicke ich den Namen und Wert für den Nachnamen meiner Feder controller und ich Mach ein insert und wenn es erfolgreich war meine controller-Methode gibt true zurück, und in den Erfolg der block von meinem script überprüfe ich den Wert, wenn wahr ist, zeige ich eine Nachricht und wenn es falsch ist, zeige ich eine andere Botschaft.

Mein problem ist, dass ich nicht weiß, was zu tun ist in diesem Abschnitt:

 success: {
  label: "Success!",
    className: "btn-success",
      callback: function() {
        //I DONT KNOW WHAT TO DO HERE
      }
}

*EDIT: *
Es war meine Schuld, bezwingend einen Wert in die Felder, ich bin mir jetzt nicht immer ein 500 internal server error, jetzt zeigt es mir meine GESCHEITERTE dialog, dass ich Feuer in den Erfolg blockieren

else {
        bootbox.alert("OPERATION FAILED");

und dann, nach dieser Nachricht sho, down under, es zeigt die Bestätigung diaglog, dass ich zeigen möchte, aufbauen. Wie zeigt mir die Nachrichten in der falschen Reihenfolge. Auch wenn ich die Gefahr-button nicht schließen Sie das Dialogfenster nur, wenn ich drücken Sie Erfolg.

*EDIT 2: *

Die Bestätigung von windows funktioniert, aber ich habe Probleme, wenn ich drücken Sie die Schaltfläche Abbrechen, wenn ich drücken Sie die Abbrechen-Taste das Fenster nicht schließen.

 function preInsert()
{
    bootbox.dialog({
        message: "are you sure",
        title: "are you sure",
        buttons: {
            success: {
                label: "Acept",
                className: "btn-success",
                callback: function () {
                    realInsert();
                }
            },
            danger: {
                label: "Cancel",
                className: "btn-danger",
                callback: function () {
                    return false;
                }
            }
        }
    });
}

function realInsert() {

    var name= $('#name').val();
    var lastName= $('#lastName').val();


    var json = {"name": name,
        "lastName": lastName
    };


    $.ajax(
            {
                type: "POST",
                url: "register/insertForm",
                data: JSON.stringify(json),
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                cache: false,
                beforeSend: function (xhr)
                {
                    xhr.setRequestHeader("Accept", "application/json");
                    xhr.setRequestHeader("Content-Type", "application/json");
                },
                success: function (data)
                {



                    if (data === true)
                    {
                        bootbox.alert("Insert Successfully ");
                    }
                    else
                    {
                        bootbox.alert("Problem during the insert");
                    }
                },
                error: function (xhr, ajaxOptions, thrownError)
                {
                    alert(xhr.status);
                    alert(xhr.responseText);
                    alert(thrownError);
                }
            });
}
Schreibe einen Kommentar