Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Module › Views ›

error div (Pflichtfeld) wird bei Checkbox nicht gesetzt?

Eingetragen von Ionit (1802)
am 05.04.2011 - 21:54 Uhr in
  • Views
  • Drupal 6.x

Hallo Freunde,

wenn man versucht, eine Node-Add-Form, mit nichtausgefüllten Pflichtfeldern, zu speichern, bekommt man eine Fehlermeldung angezeigt, und, die Pflichtfelder erhalten von Drupal ein error-Div verpasst, sodass das Feld hervorgehoben/markiert ist.

Wenn das Pflichtfeld allerdings ein CCK-Textfeld als Checkbox ist, wird dieses error-Div nicht gesetzt. Ist das CCK-Feld ein normales Textfeld oder ein Radio-Button, wird das Error-Div korrekt gesetzt - nur bei der Checkbox nicht.

Weiß zufällig jemand warum das so ist?

Das Problem ist ... "Vertical Tabs" überprüft jedes Feld nach diesem "error-Div" und zeigt gegebenenfalls den richtigen Tab an in dem das vergessene Pflichtfeld vorhanden ist, sodass der User sofort weiß wo er das Feld finden kann.

Wenn jetzt aber eine Checkbox als Pflichtfeld angegeben wurde, wird das error-div nicht gesetzt und Vertical Tabs kann den richtigen Tab nicht anzeigen, sodass der User durch alle Tabs durch muss um das Pflichtfeld finden zu können.

Wüsste hier eventuell jemand wie man dieses Problem gelöst bekommt?

Danke schonmal und schöne Grüße
Matthias

‹ [gelöst] Views - Hintergrundbild-Überlagerung verhindern wahr / unwahr ändern ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Siehe

Eingetragen von Tobias Bähr (4019)
am 05.04.2011 - 22:51 Uhr

Siehe http://drupal.org/project/checkbox_validate

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo Tobias, Mensch - danke

Eingetragen von Ionit (1802)
am 05.04.2011 - 23:31 Uhr

Hallo Tobias,

Mensch - danke vielmals für den Hinweis auf das Modul. Ich suche hier seit über einer Stunde und ich buddelte mich gerade durch einen Thread mit 200(!) Beiträgen auf drupal.org. Puhhh ... und ein Modul wurde nirgends erwähnt und ich dachte, dass man das Problem mit "einer Zeile Code" selbst fixen muss ...

"Wenn man denkt es geht nichts mehr, kommt Tobias mit nem spitzen Modul-Tip daher" ;-)

Herzlichen Dank und schönen Abend noch
Matthias

  • Anmelden oder Registrieren um Kommentare zu schreiben

Tja - das Modul ist leider

Eingetragen von Ionit (1802)
am 06.04.2011 - 01:11 Uhr

Tja - das Modul ist leider doch nicht das Richtige.

Bei meinen Checkboxes war auch vorher schon

<span class="form-required" title="Dieses Feld wird benötigt.">*</span>

vorhanden. Das "form-required" ist fehlerfrei verfügbar - auch ohne Modul.

Mir geht es um das div-tag "error" - dieser div-tag wird von Drupal gesetzt wenn ein Pflichtfeld nicht ausgefüllt wurde und der User versucht das Add-Form zu speichern. Nach dem Speicherversucht wird das error-tag eingefügt class="form-radio error"

z.B.
<input type="radio" class="form-radio error" value="Kosten angeben" name="field_1_kosten1[value]" id="edit-field-1-kosten1-value-Kosten-angeben">

Wie oben erwähnt - wenn das CCK-Feld ein normales Textfeld oder ein Radio-Button ist, wird, nach dem Speichern (ohne alle Pflichtfelder auszufüllen), dieser error-tag gesetzt, handelt es sich aber um ein Checkbox-Pflichtfeld, wird dieser tag nicht gesetzt.

Ich brauche diesen tag aber auch für die Checkbox. Das muss ein bug im Core sein.

Grübel.

normales Text-Input-Feld:
<input type="text" class="form-text required error" id="edit-field-1-adresse-0-city" name="field_1_adresse[0][city]">
normales Text-Input-Feld:
<input type="radio" class="form-radio error" value="Kosten angeben" name="field_1_kosten1[value]" id="edit-field-1-kosten1-value-Kosten-angeben">
Checkbox (da wird kein error-tag gesetzt):
<input type="checkbox" class="form-checkbox" value="Frauen" id="edit-field-1-test-value-Frauen" name="field_1_test[value][Frauen]">

  • Anmelden oder Registrieren um Kommentare zu schreiben

Checkbox Validierung

Eingetragen von stBorchert (6003)
am 06.04.2011 - 07:39 Uhr

Hallo.

Ionit schrieb

...Das muss ein bug im Core sein...

Nein, defininitv nicht. Eine Checkbox hat exakt 2 gültige Werte: "1" und "0". Diese Werte sind beide gültig, dementsprechend kann eine Prüfung auf Erforderlichkeit per default nicht erkennen, ob Wert "0" gültig ist, oder (wie von Dir gewünscht) bedeutet, dass das Feld nicht gesetzt ist (es ist ja mit dem Wert "0" gesetzt).
[do:checkbox_validate Checkbox validate] ändert dieses Verhalten, indem es einfach festlegt, dass "0" mit "nicht gesetzt" gleichzusetzen ist.

Wenn nun bei fehlgeschlagener Validierung eine zusätzliche Klasse hinzugefügt werden soll, so muss dies das Modul übernehmen. Genauer gesagt die Funktion checkbox_validate_pre_render_checkbox(&$element).
Ergo: Patch für [do:checkbox_validate Checkbox validate] schreiben, der die Klasse hinzufügt und dann als neuen Issue für das Modul einstellen.

 Stefan

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo Stefan,danke für den

Eingetragen von Ionit (1802)
am 06.04.2011 - 13:40 Uhr

Hallo Stefan,

danke für den Hinweis.

Was ich aber nicht verstehe. Warum hat eine Checkbox als Wert "0" und "1" - ein Radio-Button aber scheinbar nicht? Ein Radio-Button kann doch auch Werte haben. Warum ist dann bei einem Radio-Button, wenn der Wert gesetzt wurde nicht "1" und wenn er nicht gesetzt wurde "0"? Beim Radio-Button wird die error-class ja korrekt gesetzt. Den Unterschied verstehe ich momentan nicht wirklich. Grübel.

Ich werde mich jetzt mal mit der Funktion checkbox_validate_pre_render_checkbox(&$element) auseinandersetzen aber mit "Modulen patchen" ist das bei mir so eine Sache. Da habe ich mich noch nicht heran gewagt und große Schwierigkeiten.

Da muss ich nun erstmal schauen wie man überhaupt die input-Felder ansprechen kann .... mal sehen ob ich das hinbekomme.

Trotzdem danke für die Hilfe.

Schöne Grüße
Matthias

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • gepatchte PHP Version 7.4 für Windows
  • Canvas Palette: Eine fertige Komponentenbibliothek für Drupal Canvas
  • Hilfe zu Updates oder Composer
  • Vergleich Drupal und Contao
  • [geloest] Blocks in Bootstrap nebeneinander darstellen und nicht untereinander
  • DrupalCamp Frankfurt 27-28 November 2026
  • Bitte mein Bentzerkonto löschen
  • Beim Aufruf einiger Inhalte erhalte ich folgende Fehlermeldung
  • Neuinstallation: vermutlich ein rewrite-Problem
  • Drupal CMS installieren
  • [erledigt]MP3 in Drupal 10 einbinden
  • (gelöst)Drupal 11 installieren
Weiter

Neue Kommentare

  • Muss ja nicht genau php 8.3 sein
    vor 1 Woche 2 Tagen
  • Guten morgen und Danke
    vor 1 Woche 2 Tagen
  • Evtl. versuchen auf PHP 8 zu wechseln
    vor 1 Woche 2 Tagen
  • Danke Schmittrich. Die Frage
    vor 1 Woche 4 Tagen
  • Keine Antwort auf die Frage nach dem Woher
    vor 1 Woche 4 Tagen
  • Danke ich werde mir die
    vor 7 Wochen 2 Tagen
  • Vielen Dank für Ihren
    vor 7 Wochen 5 Tagen
  • Composer ist sehr ratsam
    vor 8 Wochen 4 Stunden
  • Vielen Dank für den
    vor 8 Wochen 2 Tagen
  • Die alten CMS Vergleiche von contentmanager.de
    vor 8 Wochen 3 Tagen

Statistik

Beiträge im Forum: 250323
Registrierte User: 20572

Neue User:

  • alxshell
  • AnthonyhoF
  • Philiphelve

» Alle User anzeigen

User nach Punkten sortiert:
wla9466
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 16 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association