Hallo zusammen,
in einem Formularfeld (Textfeld) soll verhindert werden, das ein Semikolon eingetragen wird.
Wie kann ich das umsetzen?
Hallo zusammen,
in einem Formularfeld (Textfeld) soll verhindert werden, das ein Semikolon eingetragen wird.
Wie kann ich das umsetzen?
Schöne Grüsse vom Bodensee
Mit einem validateFormField Hook.
Ich habe eine ganz andere Lösung einfach per angepasstem Template.
Das Prinzip geht auf das pattern-Attribut des Formularfeldes (HTML5) zurück. Dabei kann man einen regulären Ausdruck für die HTML5-Prüfung des Formularfeldes angeben.
Ich habe dafür im Formulargenerator den Standard-Wert missbraucht. Man trägt hier einfach den RegEx ein, in dem Fall: [^;]*
und wählt das abgewandelte Template aus:
form_textfield_pattern.html5 (abgewandelt von form_textfield.html5):
Einziger Unterschied ist die input-ZeilePHP-Code:
<?php $this->extend('form_row'); ?>
<?php $this->block('label'); ?>
<?php if ($this->label): ?>
<label for="ctrl_<?= $this->id ?>"<?php if ($this->class): ?> class="<?= $this->class ?>"<?php endif; ?>>
<?php if ($this->mandatory): ?>
<span class="invisible"><?= $this->mandatoryField ?> </span><?= $this->label ?><span class="mandatory">*</span>
<?php else: ?>
<?= $this->label ?>
<?php endif; ?>
</label>
<?php endif; ?>
<?php $this->endblock(); ?>
<?php $this->block('field'); ?>
<?php if ($this->hasErrors()): ?>
<p class="error"><?= $this->getErrorAsString() ?></p>
<?php endif; ?>
<input type="<?= $this->type ?>" name="<?= $this->name ?>" id="ctrl_<?= $this->id ?>" class="text<?php if ($this->hideInput): ?> password<?php endif; ?><?php if ($this->class): ?> <?= $this->class ?><?php endif; ?>" value=""<?php if($this->value): ?> pattern="<?= Contao\StringUtil::specialchars($this->value) ?>"<?php endif; ?><?= $this->getAttributes() ?>>
<?php $this->endblock(); ?>
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
Lesezeichen