Neu Artikel Anzahl Warenkorb mit Plus/Minus (Mobile)

Anarchnophobia

Gut bekanntes Mitglied
26. Oktober 2010
229
24
Leipzig
Hallo Gemeinde

Mich stört in dem mobilen Template massiv die Eingabe der Artikelanzahl, die man in den Warenkorb legen möchte. In der Desktopansicht gibt es sowas ja ganz klein (könnte aber auch größer sein), in der mobilen Ansicht muss man erst in das feld reinklicken, die "1" löschen (und dazu dann nochmal extra klicken, rechts neben die "1" gehen, dann löschen) und erst dann kann man eine neue Anzahl eintragen. Will man die ändern das selbe Spielchen... sehr nervig.

Das geht bestimmt besser!
Könnte man da nicht generell neben das Feld ein großes Plus / Minus einbauen, das am Desktop und Mobil gleichermaßen funktioniert?

Oder hat jemand vielleicht einen Workaround dazu? :)

Grüße
 

FPrüfer

Moderator
Mitarbeiter
19. Februar 2016
1.881
529
Halle
Das geht bestimmt besser!
Könnte man da nicht generell neben das Feld ein großes Plus / Minus einbauen, das am Desktop und Mobil gleichermaßen funktioniert?
Aktuell werden einfach die Controls des jeweiligen Browsers verwendet - sprich es gibt keine spezielle Formatierung für die Spinner-Buttons. Wenn man hier explizit ran will kann man sich mit ein bisschen Javascript und CSS behelfen.

Javascript (z.B. in der custom.js des eigenen Child-Themes):
JavaScript:
(function ($) {
    'use strict';
    let numberInputSel  = 'input[type="number"]:not([data-wrapped])';
    let wrapNumberInput = function ($numberInputs) {
        $numberInputs.each(function (index, item) {
            let $item = $(item);
            let wrap  = [];

            $item.attr('data-wrapped', 'true');

            wrap.push($('<a href="#" class="input-group-addon input-button-minus"><i class="fa fa-minus"></i></a>').data('for', $item).insertBefore($item)[0]);
            wrap.push(item);
            wrap.push($('<a href="#" class="input-group-addon input-button-plus"><i class="fa fa-plus"></i></a>').data('for', $item).insertAfter($item)[0]);
            $(wrap).wrapAll('<div class="input-group"></div>');
        });
    };

    $(window).on('load', function () {
        $(document).on('click', '.input-button-minus', function (e) {
            e.preventDefault();
            $(this).data('for').val(parseInt($(this).data('for').val()) - 1).change();
        });
        $(document).on('click', '.input-button-plus', function (e) {
            e.preventDefault();
            $(this).data('for').val(parseInt($(this).data('for').val()) + 1).change();
        });
        $(document).ajaxSuccess(function() {
            window.setTimeout(function () {
                wrapNumberInput($(numberInputSel));
            }, 100);
        });

        wrapNumberInput($(numberInputSel));
    });
})(jQuery);

CSS (im eigenen Child-Theme):
CSS:
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

input[type=number] {
    -moz-appearance: textfield;
}

Das JavaScript erzeugt vor und nach jedem numerischen Inputfeld einen Button. Davor mit einem + und danach mit einem -, die bei einem Klick jeweils den Wert des zugehörigen Inputfeldes um eins erhöhen bzw. verringern. Das CSS sorgt dafür, dass in den meisten neuen Browsern die automatischen Spin-Buttons wieder ausgeblendet werden.
Achtung: Ich habe das jetzt nur mit dem Quantity-Input des Warenkorbbuttons getestet. Ob das irgendwo im Template "Nebeneffekte" hat, die noch berücksichtigt werden müsste noch getestet werden. Ist auch nur als Ansatz gedacht ;)
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Anarchnophobia

Anarchnophobia

Gut bekanntes Mitglied
26. Oktober 2010
229
24
Leipzig
sehr cool, danke!
Das probiere ich gleich morgen mal aus und teste das ausführlich... und werde mich dann hier nochmal melden ob es geht oder obs Probleme gibt :)
 

Anarchnophobia

Gut bekanntes Mitglied
26. Oktober 2010
229
24
Leipzig
Gibt leoder doch ein Problem mit config-Artikeln... da klappt zwar das +- zwar prinzipiell, aber die Anzahl wird dann nicht in die Konfiguration übernommen.
 

FPrüfer

Moderator
Mitarbeiter
19. Februar 2016
1.881
529
Halle
Ich habe das JS in meinem Post nochmal angepasst und für die Button-Handler jeweils ein .change() ergänzt. Damit werden auch die Änderungen im Konfigurator direkt übernommen.
 

Anarchnophobia

Gut bekanntes Mitglied
26. Oktober 2010
229
24
Leipzig
es gab eine weitere Änderung von FPrüfer, gab noch ein Problem damit dass das Script in Kindartikeln nicht direkt geladen wurde.

Nun, soweit ich das überblicken kann, scheint alles zu funktionieren. Vielen Dank für die Mühe! Voll gut! :)
 

Dull

Gut bekanntes Mitglied
14. Juli 2014
129
12
Passau
Was hier dem ganzen noch den letzten Schliff verpassen würde wäre wenn man nicht nur die einfache Zählung, also +/-1, sondern auch das Abnahmeintervall mit einbeziehen würde ^^

Bei mir funktioniert das aber leider nicht so wie gewollt. Hätte einfach folgendes mit rein geschustert, vllt. kann mich ja jemand korrigieren ;) :

Code:
var step = input.attr('step');


if (step > 1) {
$(this).data('for').val(parseInt($(this).data('for').val()) - step).change();
} else {
$(this).data('for').val(parseInt($(this).data('for').val()) - 1).change();
}


if (step > 1) {
$(this).data('for').val(parseInt($(this).data('for').val()) + step).change();
} else {
$(this).data('for').val(parseInt($(this).data('for').val()) + 1).change();
}
 
Ähnliche Themen
Titel Forum Antworten Datum
Beantwortet [Shop 5.7.2 / Wawi 2.0.5] GPSR-Daten werden am Artikel nicht angezeigt trotz korrekter Übertragung und installiertem Plugin Allgemeine Fragen zu JTL-Shop 1
Neu Anzeige Alle Artikel mit Kategorieanzeige linke Menüleiste Allgemeine Fragen zu JTL-Shop 9
Neu Amazon: Artikel-Highlight / Produkttitel auf 75 Zeichen begrenzt Amazon-Anbindung - Fehler und Bugs 8
Neu Shop zeigt keine Artikel mehr Fehler 500 Betrieb / Pflege von JTL-Shop 9
Amazon Artikel-Highlights JTL-Wawi 1.7 1
JTL Wawi 1.11. - Fenstergröße - Artikel auf Einkaufsliste setzen JTL-Wawi 1.11 13
Exportvorlage: Auftrag nur Artikel die per Dropshipping verfügbar sind in Datei schreiben JTL-Wawi 1.11 4
Neu JTL → Shopify Connector: MappingTablesException / „Endpoint id is empty“ – betroffene Artikel aus Logs per SQL finden Shopify-Connector 2
Fehlermeldung beim Artikel erstellen JTL-Wawi 1.11 3
Probleme beim Shopify-Abgleich: Artikel trotz erfolgreichem Abgleich nicht in Shopify auffindbar JTL-Wawi 1.11 1
Neu Verkaufskanal Sichtbarkeit Zuweisung Artikel in Shopware gelöscht - Connector Bug? Shopware-Connector 1
Eigenes Feld aus Artikel auf Lagerpackliste ausgeben JTL-Wawi 1.11 1
Neu Artikel-Menü zurück Allgemeine Fragen zu JTL-Shop 1
JTL Artikel-Maske leer/verschoben (1.11.7) JTL-Wawi 1.11 2
Neu Ein Artikel in der Kategorie Allgemeine Fragen zu JTL-Shop 5
Neu nicht lieferbare Artikel aus Bestellung wieder auf die Einkaufsliste setzen ?! User helfen Usern - Fragen zu JTL-Wawi 1
Neu Streichpreise oder Rabatte für Staffelpreise von einem Artikel einrichten? Wie am Besten? JTL-Wawi 1.6 0
Neu Eigene Artikel Felder im JTL Shop anzeigen lassen User helfen Usern - Fragen zu JTL-Wawi 4
Neu Pickliste mit maximaler SKU-Anzahl – gibt es eine Lösung? Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 4
Neu Anzahl der URLs in der Sitemap ändern Allgemeine Fragen zu JTL-Shop 3
nach Update von 5.3 auf 5.7 neue Position im Warenkorb "Gebühr" die auch in den Auftrag übernommen werden Einrichtung JTL-Shop5 2
Neu Seltsamer Fehler bei PayPal-Checkout: "Warenkorb enthielt Vaterartikel..." JTL-Shop - Fehler und Bugs 2

Ähnliche Themen