Problem mit Angezeigtem JavaScript-Code im Web-to-Lead-Formular

Hallo SuiteCRM-Community,

ich hoffe, hier Hilfe für ein spezifisches Problem mit meinem Web-to-Lead-Formular zu finden. Ich habe erfolgreich ein Web-to-Lead-Formular in SuiteCRM erstellt. Während die Funktionalität des Formulars wie erwartet funktioniert, gibt es ein ungewöhnliches Problem: Ein Teil des JavaScript-Codes wird direkt auf dem Formular angezeigt.

Zur Klarstellung, das Formular sammelt und übermittelt Daten korrekt, aber der sichtbare JavaScript-Code beeinträchtigt das Nutzererlebnis erheblich. Der angezeigte Code betrifft die Bereiche für die Validierung und das Absenden des Formulars. Hier sind ein paar Details:

Der JavaScript-Code ist direkt auf der Seite sichtbar, anstatt im Hintergrund ausgeführt zu werden.
Dieses Problem tritt in verschiedenen Browsern auf.
In dem von Suit erzeugten Code finde ich den angezeigten Code nicht 

Ich wäre sehr dankbar, wenn jemand Vorschläge zur Behebung dieses Problems machen könnte. Hat jemand ähnliche Erfahrungen gemacht oder kennt eine Lösung, um zu verhindern, dass der JavaScript-Code auf dem Formular angezeigt wird?

Vielen Dank im Voraus für Ihre Unterstützung und Ratschläge.

Beste Grüße,
Wolfgang

Hallo Wolfgang,

was soll denn der Code machen, der angezeigt wird auf der Seite?
Kannst du den mal hier rein kopieren?

Bei der 8.4er SuiteCRM Version wurden bei mir zwei JS Funktionen ins Formular mit hinein-generiert.

function submit_form()
function check_webtolead_fields()

Du hast geschrieben, dass du den JS-Code nicht findest in dem HTML, welches von SuiteCRM generiert wurde.
Evtl. hat das gar nichts mit dem CRM zu tun?

Was für ein CMS nutzt du denn?
Und welchen Form-Generator?

Viele Grüße
Bastian

Hallo Bastian,
hier ist der angezeigt Code function submit_form() { if (typeof(validateCaptchaAndSubmit) != ‘undefined’) { validateCaptchaAndSubmit(); } else { check_webtolead_fields(); //document.WebToLeadForm.submit(); } } function check_webtolead_fields() { if (document.getElementById(‘bool_id’) != null) { var reqs = document.getElementById(‘bool_id’).value; bools = reqs.substring(0, reqs.lastIndexOf(‘;’)); var bool_fields = new Array(); var bool_fields = bools.split(‘;’); nbr_fields = bool_fields.length; for (var i = 0; i < nbr_fields; i++) { if (document.getElementById(bool_fields[i]).value == ‘on’) { document.getElementById(bool_fields[i]).value = 1; } else { document.getElementById(bool_fields[i]).value = 0; } } } }

Ich nutze SuitCRM 7.12.5 und den dort integrierten WEB2LEAD generator.

Danke Dir im Voraus.
Wolfgang

Das sieht bei mir tatsächlich genauso aus. (also der JS Code sieht auch so aus, wird aber als Code interpretiert, nicht auf die Website gerendert).

Dann gehe ich davon aus, das dein CMS keinen JS Code erlaubt oder so etwas in der Richtung.
Der JS Code ist auch im HTML vom CRM enthalten.

Dann kopierst du den in dein CMS und ich schätze, da wird dieser zur Sicherheit entfernt.
Welches CMS nutzt du?

Vor dem JS Code ist es wichtig, dass dein CMS die erste Zeile mit rendert:

<script type="text/javascript">// <![CDATA[

(und anschließend noch das schließende script Tag // ]]></script>
Wenn ein CMS dieses HTML Element nicht erlaubt, dann wird der JS Code einfach so angezeigt auf der Website.

Ich habe das Formular hier lokal erstmal zum testen heruntergeladen. In chrome und FF getestet.
Gleiches Ergebnis.

Es gab mal einen Bug, der sowas in der Art verursacht hat.

Wichtig ist eben das öffnende und zum Ende hin das schließende Script Tag:

<script type="text/javascript">
...
</script>

ohne das, sind die Browser nicht in der Lage, JavaScript-Code als solchen zu erkennen sondern zeigen diesen einfach auf der Seite an.

Hallo Bastian ,
vielen Dank.

Ich habs. Tatsächlich generiert SUitCRM nicht den Befehl.

Habe ich nun ergänzt. und es läuft.

lg aus Franken
Wolfgang

Prima, freut mich, dass es jetzt klappt.