WordPress Contact Form 7 Radio nicht erforderlich

Lesezeit: 3 Minuten

Ich habe ein Formular mit wenigen Feldern zusammen mit einem Optionsfeld. Dieses Optionsfeld ist ein optionales Feld. Aber ich kann das Formular nicht absenden, wenn ich keine Option aus dem Optionsfeld auswähle.

<div class="input-field-outer">
    [text* your-name class:name placeholder "Name or business name*"]
</div>
<div class="input-field-outer">
    [email* email placeholder "Email*"]
</div>
<div class="input-field-outer">
    [text* contact-number id:telno class:hs-phone-number placeholder "Contact number*"]
    <span id="errmsg"></span>
</div>
<div class="input-field-outer">
    <div class="radio-outer">
        [radio customer_type "New Customer" "Old Customer"]
    </div>
</div>

Es funktioniert, wenn ich einen von ihnen als Standard auswähle:

[radio customer_type default:1 “New Customer” “Old Customer”]

Irgendwelche Ideen zur Verwendung von Optionsfeldern ohne standardmäßige Elemente.

Eine Problemumgehung wäre, ein Kontrollkästchen zu verwenden und den exklusiven Parameter hinzuzufügen. Auf diese Weise können Sie das Formular senden, ohne einen Kundentyp auszuwählen.

[checkbox customer_type exclusive "New Customer" "Old Customer"]

  • Danke @vicente. Eigentlich habe ich die gleiche Lösung vom Support bekommen: wordpress.org/support/topic/…. Nochmals vielen Dank für Ihre Antwort.

    – Rijo

    22. August 2017 um 7:00 Uhr


Checkbox exklusiv hat bei mir eigentlich nicht funktioniert, weil das CSS des Themes es nicht unterstützt hat.

Ohne mich darum zu kümmern, dem Design JS und CSS hinzuzufügen, um diese Funktion zu unterstützen, habe ich es geschafft, das Problem mit dem Radio zu lösen, indem ich ein weiteres “leeres” Feld verwendet habe:

[radio choice label_first default:1 "" "Yes" "No"]

Danach habe ich in CSS hinzugefügt:

.wpcf7-list-item.first {
    display: none;
}

Diese ausgewählte erste Option, die im Front-End (und der resultierenden E-Mail) nicht angezeigt wurde und das Kontrollkästchen bei der Validierung effektiv nicht erforderlich machte.

  • Elegant. Wenn ein CSS-loser Benutzer das Formular absendet, wird die Auswahl immer noch als leer angezeigt, so dass es, obwohl es für diesen mythischen Benutzer umständlich ist, immer noch mitteilt, was er absenden würde. Abhängig von Ihrem Anwendungsfall können Sie auch „n/a“ sagen lassen.

    Benutzer241244

    1. September 2018 um 23:19 Uhr


  • Am besten einpacken div oder so etwas, so dass Sie es nach seiner Klasse ansprechen können, wie z .radio-no-first .wpcf7-list-item.first

    Benutzer241244

    1. September 2018 um 23:25 Uhr

Um die Validierung für alle Optionsfelder zu entfernen, fügen Sie dies zu functions.php oder an anderer Stelle hinzu.

remove_filter('wpcf7_validate_radio', 'wpcf7_checkbox_validation_filter', 10);

Wenn Sie die erforderliche Validierung für pflegen möchten etwas der Radios, ändere sie wie folgt:

[radio fieldName class:required "Yes" "No"]

Fügen Sie dann diesen Code zu functions.php hinzu:

remove_filter('wpcf7_validate_radio', 'wpcf7_checkbox_validation_filter', 10);

add_filter('wpcf7_validate_radio', function($result, $tag) {
  if (in_array('class:required', $tag->options)) {
    $result = wpcf7_checkbox_validation_filter($result, $tag);
  }
  return $result;
}, 10, 2);

Mit der Option können Sie auswählen, welches Optionsfeld standardmäßig ausgewählt ist
default:1 für das erste Radio bzw default:2 für das zweite Radio und so weiter.

Hinzufügen der Option default:0 macht genau das was du suchst. Dadurch werden alle Optionsfelder deaktiviert.

Gerade gelesen Dies Kommentar, der besagt:

Der Autor von CF7, Takayuki Miyoshi, glaubt, dass ein Optionsfeld standardmäßig ein Pflichtfeld ist. Und er ist nicht der Einzige. Dies folgt den HTML-Spezifikationen des W3C für Optionsfelder.

und

Wenn Sie keine erforderliche Option benötigen, können Sie zur Verwendung eines Kontrollkästchens wechseln.

Das Erstellen einer Problemumgehung entspricht also nicht den Spezifikationen des W3C und ist aus diesem Grund möglicherweise nicht die beste Lösung.

1395140cookie-checkWordPress Contact Form 7 Radio nicht erforderlich

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

Privacy policy