Mehr

Ein Formular aus einem Faltblatt-Popup heraus senden?

Ein Formular aus einem Faltblatt-Popup heraus senden?


Ich möchte ein Formular aus einem Faltblatt-Popup heraus einfach mit Javascript und Geojson senden. Ich sammle im Wesentlichen Attributinformationen im Formular und möchte die Informationen dann unter Verwendung der Koordinaten der Markierung auf der Karte in ein neues Feature verarbeiten. Das Formular befindet sich in einem Faltblatt-Popup und beim "Senden" möchte ich "Default verhindern" und dann etwas tun. Ich verwende das Formular im leaflet.draw-Plugin.

Der Prozess geht: Karte mit Zeichenfunktionen laden (kein Bearbeiten oder Löschen), Klicken Sie auf das Zeichenwerkzeug, klicken Sie auf die Karte, um einen Punkt hinzuzufügen, eine temporäre Markierung mit einem geöffneten Popup mit einem Formular zu platzieren, zu senden, um eine Markierung nach der Konvertierung von Geojson zu einem aktuellen Feature-Layer hinzuzufügen .

Derzeit wird die Seite beim Senden neu geladen und es passiert nichts. Ich kann nicht einmal etwas in die Konsole einloggen.

Hier ist mein Code:

Ich habe auch versucht, meine Funktion addMarker aufzurufen, indem ich die Button-Klasse aufrufe, das Button-Element nach der ID und das Formularelement nach der ID erhalte und meinen Code als solchen neu anordne.

$("#form").submit(function(event){ event.preventDefault(); addMarker(); });

Was ist der beste Weg, um das Formular während 'leaflet.draw:created' aus einem Faltblatt-Popup heraus erfolgreich zu "senden", ohne PHP zu verwenden? Ich möchte diese Informationen nicht in einer Datenbank speichern, sondern sie verwenden, um ein neues Feature mit vielen Attributen hinzuzufügen.


Ich habe es herausgefunden! - Das Problem ist, dass meine Funktion oder wo auch immer ich meine Codezeile auf "preventDefault()" halte, außerhalb der Funktion lag, die das Formular überhaupt erstellt hat. Ich muss den Code wie folgt platzieren:

//Benutzerdefinierte Funktionen nach 'edit' map.on('draw:created', function(e) { var coords = e.layer._latlng; console.log(coords); var tempMarker = featureGroup.addLayer(e.layer) ; var popupContent = '
'+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ //… ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ '
'; tempMarker.bindPopup(popupContent,{ keepInView: true, closeButton: false }).openPopup(); $("#form").submit(function(e){ e.preventDefault(); console.log("nicht übermittelt"); var date =$("#date").val(); console.log( Datum); }); });

Dies ermöglicht es mir, an dem Formularelement zu arbeiten, bevor es im Wesentlichen ein neues erstellt.