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"]
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.
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.
13951400cookie-checkWordPress Contact Form 7 Radio nicht erforderlichyes