Frage

Ich möchte ein Formularfeld für URL validieren. Ich habe die Standardeinstellung für das Feld auf http: // festgelegt. Wenn der Benutzer keine URL eingibt und die http: // verlässt, wird ungültige URL angezeigt. URL ist nicht erforderlich. Wenn es sich also nur um http: // handelt, sollte sie keine Fehlermeldung anzeigen. Wie kann ich es ignorieren, wenn die Person http: // als URL einreicht?

Vielen Dank

War es hilfreich?

Lösung

http: // ist keine gültige URL. Wenn Sie sie also sowieso zulassen möchten, gibt es 2 Optionen

  1. ein ... kreieren Benutzerdefinierte Validierungsregel, das gilt für eine echte URL + http: //
  2. Verwenden Sie das Vor dem Rückruf validieren und stellen Sie das URL -Feld auf leer, wenn es gerade ist http: //

Ich hoffe, das hilft

BEARBEITEN

Ich habe vergessen: Sie müssen aber nicht erforderlich einstellen 'allowEmpty' => true

erforderlich -> Das Formular muss ein Feld XYZ enthalten, das an den Server gesendet wird

erlaubt-> Ein Feld kann leer sein


Ich habe den Link zur obigen Rückruffunktion hinzugefügt, aber trotzdem .. hier ist es:

in Ihrer Modellklasse (ich nehme nur an, es ist User):

class User extends AppModel {
    ..

    function beforeValidate() {
        if (isset($this->data['User']['url']) && $this->data['User']['url'] == 'http://') {
            $this->data['User']['url'] = '';
        }
        return true;
    }
    ..
}

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top