Contao-Camp 2024
Ergebnis 1 bis 3 von 3

Thema: Eintragung eines Semikolon soll in Formularfeld nicht möglich sein

  1. #1
    Contao-Nutzer Avatar von Robin007
    Registriert seit
    04.02.2014.
    Ort
    Stockach
    Beiträge
    190

    Standard Eintragung eines Semikolon soll in Formularfeld nicht möglich sein

    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

  2. #2
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.898
    Partner-ID
    10107

    Standard

    Mit einem validateFormField Hook.

  3. #3
    Contao-Urgestein Avatar von do_while
    Registriert seit
    15.06.2009.
    Ort
    Berlin | Deutschland
    Beiträge
    3.612
    Partner-ID
    1081
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    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):
    PHP-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(); ?>
    Einziger Unterschied ist die input-Zeile

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •