Selectpicker im Wave-Theme führt zu Fehlern

Hallo zusammen,

ich finde leider keine Oxid-Demo-Version, die das Wave-Theme nutzt, daher kann ich das nirgendwo anders testen und stelle somit meine Frage hier.

In einem neu aufgesetzten Oxid 6.2 Shop nutzen wir das Wave-Theme bzw. ein Child-Theme, welches das Wave-Theme als Parent hat. Ich möchte Anpassungen am Template user_shipping.tpl vornehmen und habe es somit komplett ins Child-Theme kopiert. Das ist die Ausgangssituation.

Im Checkout tritt nun folgender Fehler auf:
Ich möchte eine abweichende Lieferadresse angeben. Eine abweichende Lieferadresse ist bereits gespeichert. Ich klicke auf “neue Adresse hinzufügen” (bzw. auf den Auswählen-Button). In dem Moment wird bereits ein Javascript-Fehler geworfen:

oxusershipingaddressselect.min.js?1594050685:formatted:24 Uncaught TypeError: a(…).selectpicker is not a function

Die betroffene Stelle im Script ist die Zeile a("#delCountrySelect").selectpicker(“refresh”)

Wenn ich jetzt z.B. doch die bereits vorhandene abweichende Adresse auswählen will, tut sich nichts, der JavaScript-Fehler wird einfach wiederholt und die Adress-Inputfelder bleiben leer.

Ist das ein Bug mit dem Wave-Theme? Kann das Verhalten mit Oxid 6.2+Wave jemand nachstellen?

Viele Grüße
Malte

Check mal die Datei /source/Application/views/wave/tpl/form/fieldset/state.tpl. In 6.2 gibt’s den Eintrag

[{oxscript add="$( '#$countrySelectId' ).change( function() { $( 'select[name=\"$stateSelectName\"]' ).selectpicker('refresh'); } );"}]

(bei uns) entgegen 6.1 nicht mehr.

Danke für die Antwort, aber ich weiß noch nicht, was das konkret für mich bedeutet.

Ist das damit ein Bug, weil es den selectpicker in der Form nicht mehr gibt im Wave-Theme? Es gibt einen “neuen” Selectpicker (großes s) und der wird irgendwo mal als jQuery-Plugin angelegt, allerdings in der Datei javascript.js im out-Verzeichnis. Die wird aber gar nicht eingebunden, sondern lediglich die script.min.js und die enthält keinen Verweis auf den Selectpicker, daher auch die Fehlermeldung, dass das keine function ist.

Wofür gibt es denn überhaupt die javascript(.async).js Datei?

Kommt drauf an, woher die Datei stammt (beim Update vergessen?). Wie geschrieben, gibt es die Zeile bei uns in 6.2 nicht, d.h. in 6.2 gehört es “nach meinem Gutdünken” auch nicht mehr hin. Ich würde die Zeile mal entfernen und testen.

Bei uns gibt es die Zeile auch nicht mehr, die hat ja auch nichts mit meinem oben geposteten Problem zu tun. Ich dachte das sollte von dir nur ein weiteres Beispiel für “selectpicker wurde aus Wave entfernt” sein.

sorry, vielleicht hab ich es auch falsch verstanden. Meinst du die Zeile “a(”#delCountrySelect").selectpicker(“refresh”)" gibt es in der oxusershipingaddressselect.min.js nicht mehr? Ich dachte du beziehst dich auf deinen Code aus der state.tpl

Ach. Ich hatte was anderes im Sinn, denn einen ähnlichenFehler hatte ich gerade bei einem Kunden zu korrigieren. a(“#delCountrySelect”). hatte ich wohl übersehen.

Wird bei euch ein jQuery-Script evtl. 2x geladen? Dies ist häufiger die Ursache für so einen Fehler.

Hm ne, sieht nicht so aus, als würde etwas doppelt geladen werden.

Kennt jemand einen Demo-Shop, der unter Oxid 6(.2) mit Wave läuft? Oder meinetwegen auch einen Produktivshop? Würde gerne erst einmal verifizieren, dass oder dass es nicht an unserem Setup liegt.

Hast ne PM

1 Like

Besten Dank, konnte dadurch verifizieren, dass das ein allgemeiner Bug ist, der mit dem Wave-Theme auftritt. Werde es dann entsprechend im Issue-Tracker melden.

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.