Erstellen einer bedingten Anweisung basierend auf der Seiten-URL

Lesezeit: 4 Minuten

Erstellen einer bedingten Anweisung basierend auf der Seiten URL
jflay

Ich verwende die GPS-Lookup-API von Mapquests und WordPress, also wende ich dieselben map.js-Funktionen an, um Längen-, Breiten- und Adressangaben für Felder auszufüllen, die auf völlig unterschiedlichen Seiten derselben Website vorhanden sind. Dies ist zum Beispiel das, was ich bisher habe (nur Breitengradbeispiel) und kann NUR die erste Anweisung zum Laufen bringen, während andere dies auf den anderen Seiten nicht tun, dh das Feld mit dem Wert füllen.

Besser noch, gibt es neben GetElementById einen besseren Weg, um diese Formular-IDs zu füllen, die auf verschiedenen Seiten vorhanden sind? Es schlägt fehl, wenn der Wert null ist, da es nach der ID sucht, die nicht auf der Seite ist …

Dieses Beispiel gefunden: Javascript stimmt mit einem Teil der URL überein, wenn die Anweisung auf dem Ergebnis basiert

JS

var str = "http://wordpressite.com/soco-app/forms/lights-out/report-vegetation-growth-web/report-vegetation-growth-iphone/"
if (str.indexOf("http://wordpressite.com/soco-app/forms/lights-out") === 0) {
document.getElementById("input_1_11").value = latitude;
} else if (str.indexOf("http://wordpressite.com/soco-app/forms/report-vegetation-growth-web") === 0) {
document.getElementById("input_2_6").value = latitude;
} else if (str.indexOf("http://wordpressite.com/soco-app/forms/report-vegetation-growth-iphone") === 0) {
document.getElementById("input_3_6").value = latitude;
}

HTML für Seite 1 – Lichter aus

<li id='field_1_11' class="gfield     gform_hidden" ><input name="input_11" id='input_1_11' type="hidden" class="gform_hidden" value="" /></li><li id='field_1_12' class="gfield     gform_hidden" ><input name="input_12" id='input_1_12' type="hidden" class="gform_hidden" value="" /></li><li id='field_1_13' class="gfield     gform_hidden" ><input name="input_13" id='input_1_13' type="hidden" class="gform_hidden" value="" /></li>

HTML für Seite 2 – Report-Vegetation-Wachstum-Web

<li id='field_2_6' class="gfield     gform_hidden" ><input name="input_6" id='input_2_6' type="hidden" class="gform_hidden" value="" /></li><li id='field_2_7' class="gfield     gform_hidden" ><input name="input_7" id='input_2_7' type="hidden" class="gform_hidden" value="" /></li><li id='field_2_8' class="gfield     gform_hidden" ><input name="input_8" id='input_2_8' type="hidden" class="gform_hidden" value="" /></li>

Das ist das Wesentliche … Ich verwende das Schwerkraftformular-Plugin, aber die IDs sind nach dem Erstellen der Felder statisch, es sei denn, ich lösche ein Feld.

  • Was ist das Problem, mit dem Sie konfrontiert sind, da der Code richtig zu sein scheint.

    – Praveen Kumar Purushothaman

    24. Mai 2013 um 4:58 Uhr

  • Das Problem ist, dass er eine Fehlermeldung erhält, wenn die ID nicht vorhanden ist. Zwischenspeichern Sie das Element in einer Variablen und prüfen Sie dann, ob es vorhanden ist. wenn ja Wert einstellen.

    – Elclans

    24. Mai 2013 um 4:58 Uhr


  • Die Felder werden auf den anderen Seiten einfach nicht ausgefüllt 🙁

    – jflay

    24. Mai 2013 um 4:59 Uhr

  • Kannst du uns auch den HTML-Code zeigen?

    – Praveen Kumar Purushothaman

    24. Mai 2013 um 5:01 Uhr

1647183547 549 Erstellen einer bedingten Anweisung basierend auf der Seiten URL
JayMoretti

Du kannst es versuchen:

var str = window.location.pathname; // get the current URL;
var el; // cache element;
if(str.indexOf('lights-out') > -1) {
    el = document.getElementById("input_1_11");
} else if(str.indexOf('growth-web') > -1) {
    el = document.getElementById("input_2_6");
} else if(str.indexOf('growth-iphone') > -1) {
    el = document.getElementById("input_3_6");
}

if(el)
    el.value = latitude;

  • Gute Denkweise. Sogar das könnte werfen einen Fehler beim Einstellen. Mal sehen, ob das funktioniert.

    – Praveen Kumar Purushothaman

    24. Mai 2013 um 5:08 Uhr

  • Hat nicht funktioniert … Ich habe sogar Ihren Schreibfehler von “srt” in str geändert und eine fehlende Klammer für die öffnende if-Anweisung hinzugefügt. Hatte meine Hoffnungen auf haha

    – jflay

    24. Mai 2013 um 5:11 Uhr

  • wechseln if Aussage zu if(el!=null) würde eventuelle Fehler verhindern.

    – JayMoretti

    24. Mai 2013 um 5:12 Uhr

  • @jflay welche Fehler bekommst du genau? (und die Tippfehler und die fehlende Klammer und = korrigiert. Verdammt, es ist spät: p

    – JayMoretti

    24. Mai 2013 um 5:12 Uhr


  • Ich erhalte nicht einmal irgendwelche Fehler, was ärgerlich ist. Ich erhalte leere Werte für die Felder, wenn mein js-Code, den ich kenne, funktioniert, aber nur, wenn ich jeweils eine ElementById verwende. Wenn ich nur das eine Javascript ElementByID verwende, wird das Feld so ausgefüllt, wie es sollte, aber wenn ich mehr zum Mix hinzufüge, tut es das nicht … und ich kann nicht alle drei nebeneinander hinzufügen, weil ich “Timestamp: 5/” bekomme. 24/13 00:04:36 Uhr Fehler: TypeError: document.getElementById(…) ist null Quelldatei: asset.com/soco-app/forms/wp-content/themes/twentytwelve/js/… Schnur: 26″

    – jflay

    24. Mai 2013 um 5:16 Uhr


998150cookie-checkErstellen einer bedingten Anweisung basierend auf der Seiten-URL

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy