Custom Textfeld auf der Produktseite als Pflichtfeld machen im Code?

Topic summary

Ein Nutzer möchte ein selbst programmiertes Textfeld auf der Produktseite als Pflichtfeld einrichten, damit Kunden das Produkt nur mit ausgefülltem Feld in den Warenkorb legen können.

Bisherige Lösungsansätze:

  • Verwendung des required-Attributs im HTML-Input-Element
  • Platzierung des Textfelds innerhalb des <form>-Tags mit dem “In den Warenkorb”-Button
  • Entfernung des novalidate-Attributs aus dem Formular, das die Pflichtfeld-Validierung verhindert

Aktuelles Problem:
Trotz Anpassungen funktioniert die Pflichtfeld-Validierung nicht wie gewünscht. Das Textfeld lässt sich weiterhin umgehen. Der Code wurde im Ride Theme in der Datei main-custom2-produkt.liquid eingefügt.

Empfohlene nächste Schritte:

  • Code in buy-button.liquid (snippets) verschieben
  • novalidate-Attribut aus der Formular-Definition entfernen
  • Prüfen, ob JavaScript-Code die Standard-Validierung überschreibt
  • Developer Console nutzen, um zu verifizieren, dass das required-Attribut nicht durch CSS/JS entfernt wird

Der Nutzer arbeitet zusätzlich mit einer Personalisierungs-App, bei der die Validierung teilweise funktioniert.

Summarized with AI on November 20. AI used: claude-sonnet-4-5-20250929.

Ich habe ein Textfeld auf meiner Produktseite und möchte das als Pflichtfeld machen. ich habe das Textfeld im code programmiert aber habe keine wirklichen Kenntnisse!

Wo und was kann ich im Code verändern um ein Pflichtfeld zu erstellen?


              
              
           

@Litecard im Grunde sind das nicht falsch aus. Allerdings benötigst du nicht das form-Attribut. Schau dir mal mein Beispiel an, dieses solltest du verwenden können.


  
  

1 Like

Hallo Finer,

vielen dank für die Antwort.

der Code funktioniert aber leider immer noch nicht so wie ich das wollte.

da ist jetzt zwar ein Textfeld so wie davor auch aber man kann immer noch das Produkt in den Warenkorb legen ohne das Textfeld auszufüllen.

Hey @Litecard

Es sollte normalerweise ausreichen, um das Textfeld als Pflichtfeld zu behandeln. Allerdings kann es sein, dass etwas anderes im Code oder im Shopify-Theme das Verhalten beeinflusst.

Stelle vielleicht sicher, dass das Textfeld innerhalb des <form>-Tags liegt, der den “In den Warenkorb”-Button enthält. Das sollte etwa so aussehen:


Überprüfe, ob es JavaScript-Code gibt, der das Standardverhalten des Formulars überschreibt oder verhindert. Suche nach Event-Handlern wie submit, click oder preventDefault. Wenn es solchen Code gibt, stelle sicher, dass die Validierung des Pflichtfeldes berücksichtigt wird, bevor das Produkt in den Warenkorb gelegt wird.

Stelle auch sicher, dass keine CSS-Regel oder JavaScript-Code das required-Attribut entfernt oder überschreibt. Man kann das in der Developer Console überprüfen (Rechtsklick → Inspect), und das Element inspizieren, um sicherzustellen, dass das required-Attribut vorhanden ist.

Anonsten kann es sein, dass dein Theme auf eine bestimmte Weise angepasst wurde, die das normale Verhalten der Pflichtfelder beeinträchtigt. In diesem Fall empfehle ich, dich an das Support-Team des Theme-Entwicklers zu wenden, um weitere Hilfe zu erhalten.

@Litecard wie hast du denn den Code eingefügt? Welches Theme verwendest du denn?

ich habe den code von dir in die stelle eingefügt, wo mein code war.

@Litecard ok, meine Frage war etwas unspezifisch: An welcher Stelle im Liquid Code (Datei und Zeile), hast du den Code eingefügt? Kannst du mir das Snippet oder die Section nennen?

Wenn du mir noch dein Theme nennen kannst, würde das auch helfen.

Also ich habe das Ride Theme und mache das im main-custom2-produkt.liquid

@Litecard setzte den Code in die buy-button.liquid (snippets) direct vor:


Danach musst du in dem Liquid:

{%- form 'product',
        product,
        id: product_form_id,
        class: 'form',
        novalidate: 'novalidate',
        data-type: 'add-to-cart-form'
      -%}

Das “novalidate” entfernen. Das sorgt nämlich dafür, dass keine Pflichtfelder (required) nicht berücksichtigt werden.

Das sollte also dann folgendermaßen aussehen:

{%- form 'product',
        product,
        id: product_form_id,
        class: 'form',
        data-type: 'add-to-cart-form'
      -%}

Gibt es einen Grund, weshalb du so viele main-product.liquids (main-custom-produkt.liquid / main-coustum2-produkt.liquid …) hast?

1 Like

nein eigentlich nicht aber ich habe den code über ein YouTube Video bearbeitet und will eigentlich nur das ein Textfeld auf der Produkt Seite existiert, was man ausfüllen muss (Pflicht Feld) um das Produkt in den Warenkorb zu legen.

ich habe das gemacht was sie gesagt haben und es funktioniert auch aber nur bei meinem Upload Bottom von meiner personazier app und nicht bei dem Text?

Den Code von dem Textfeld habe ich von meinem altem genommen, weil das Textfeld von ihnen nicht am Theme angepasst war?

PS: Sorry für die umstände, ich kenne mich noch nicht so gut mit Coden aus.

Ich Schätze ihre Hilfe wirklich sehr!