Sie Dinge overcomplocating. Die Prüfung auf localStorage kann viel einfacher sein (other options). jQuery hat eine serialze()
Funktion, die alle Formularelemente übernimmt und serialisiert. Sie können sie unter "eloqua-fields" speichern, damit Sie sie wiederfinden können. Es ist nicht nötig, etwas ausgefallenes zufälliges Retralisieren durchzuführen.
Ich möchte hinzufügen, dass nicht alle von Ihnen Code sinnvoll ist. Warum sollten Sie localstorage verwenden, wenn Sie es jedes Mal löschen, wenn das DOM bereit ist? Ihre Validierung bricht den Sendevorgang nicht ab, wenn es Fehler gibt, aber ich nehme an, Sie möchten nur mit etwas herumspielen.
$(document).ready(function(){
localStorage.clear();
$("form").on("submit", function() {
if(window.localStorage!==undefined) {
var fields = $(this).serialize();
localStorage.setItem("eloqua-fields", JSON.stringify(fields));
alert("Stored Succesfully");
$(this).find("input").val(""); //this ONLY clears input fields, you also need to reset other fields like select boxes,...
alert("Now Passing stored data to Server through AJAX jQuery");
$.ajax({
type: "POST",
url: "backend.php",
data: {data: fields},
success: function(data) {
$('#output').html(data);
}
});
} else {
alert("Storage Failed. Try refreshing");
}
});
});
Für den Server Teil, wenn Sie nur Ihre Daten irgendwo speichern möchten.
$dataObject = $_POST['data'];
$json = json_decode($dataObject);
file_put_contents('your_data.txt', $json) ;
geben Sie bitte jsfiddle – LorDex
http://jsbin.com/iSorEYu/1/edit & http://jsbin.com/OGIbEDuX/1/edit –