Hallo,
ich bastele grade in einer Erweiterung ein etwas komplexeres Formular aus Widgets zusammen. Hierbei sollen bestimmten Formularfelder nur validiert werden, wenn gewisse Checkboxen im Formular gesetzt sind. Entsprechend hab ich es im Modul programmiert (hier der entsprechende Code, ist für meine eigentliche Frage unten aber eigentlich unwichtig):
PHP-Code:
//selected_forms ist der Name der Checkboxen im Formular mit denen
// ausgewählt wird, welche Formularteile ausgefüllt werden und validiert werden sollen
//
// $arrMessageWidgets und $arrQuestionWidgets enthalten jeweils die Widgets für die
// jeweiligen Checkboxes
$selectedForms = \Input::post('selected_forms');
if (is_array($selectedForms))
{
if (in_array(1, $selectedForms))
{
$errMessage = $this->validateWidgets($arrMessageWidgets);
}
if (in_array(2, $selectedForms))
{
$errQuestion = $this->validateWidgets($arrQuestionWidgets);
}
}
$doNotSubmit = ($errMessage || $errQuestion);
if (!$doNotSubmit)
{
// email senden und so...
Das funktioniert serverseitig auch problemos, allerdings scheint Contao zusätzlich noch eine clientseitige Validierung der Formularfelder durchzuführen(?), und die moniert jetzt die nicht ausgefüllten Felder auch dann, wenn die Checkbox nicht gesetzt ist (was ja auch logisch ist).
Ich hätte jetzt gedacht, dass diese Validierung mit Javascript realisiert ist, komischerweise findet sie auch statt, wenn ich Javascript deaktiviere. Blicke da irgendwie nicht durch...
Meine Frage ist, ob man diese zusätzliche Validierung von Formularfeldern irgendwie abschalten kann, so dass nur die serverseitige Validierung durchgeführt wird, die man per PHP in seiner Erweiterung beeinflussen kann.
Am besten wäre, wenn das per PHP in der Erweiterung geht (vielleicht ein Wert im eval-Array?), notfalls auch über die Einstellungen der Contao-Installation.
Grüsse,
fluppi
Lesezeichen