it-swarm.com.de

Formularüberprüfung mit Feldern mit Leerzeichen als Wert

Dies ist das Feld auf der Administratorseite, das erforderlich ist.

<field name="exam_name" 
type="text"
label="Name"
required="true" />

Wenn ich dieses Feld leer lasse (null), wird im Formular ein Validierungsfehler angezeigt. Ungültiges Feld.

Wenn ich jedoch ein Leerzeichen lasse, werden die in der Datenbank gespeicherten Seiten und Leerzeichen gesendet.

Gibt es eine Möglichkeit, das Formular zu validieren, obwohl ein bestimmtes Feld Leerzeichen anstelle von Leerzeichen enthält?

1
Malaiselvan

Sie können die clientseitige Validierung verwenden. Fügen Sie also zunächst Folgendes zur Formularansicht hinzu (Wählen Sie je nach Ihrer Joomla-Version eine aus).

JHtml::_('behavior.formvalidation'); // Joomla 3.3
JHtml::_('behavior.formvalidator');  // Joomla 3.4

Dann füge das form-validate Klasse zu Ihrem Formular, so sieht es so aus:

<form class="form-validate">

Fügen Sie dann die erforderlichen Klassen wie folgt zu Ihrem Formularfeld hinzu:

<field name="exam_name" class="required validate-custom"

Wenden Sie dann dasselbe auf die Schaltfläche zum Senden Ihres Formulars an, und zwar wie folgt:

<input type="submit" class="required validate-custom"

Und schließlich können Sie die folgende jQuery verwenden:

jQuery(document).ready(function($){
    document.formvalidator.setHandler('custom', function (value) {
        // Perform your validation for blank spaces
        // You could use a regex or maybe trim the value
        // Whatever method you prefer
    });
});
1
Lodder

Wenn Ihr Modell JModelAdmin oder JModelForm erweitert, können Sie die Validierungsfunktion verwenden, um die Client-Eingabe vor dem Speichern in der Datenbank zu validieren.

class MyComponentModelForm extends JModelAdmin
{

  ....
  ....

  /* Override */
  public function validate($form, $data, $group = null)
  {
     $data = parent::validate($form, $data, $group = null);
     if(!$data || empty($data['myfield']))
     {
       JFactory::getApplication()->enqueueMessage(JText::_('COM_MYCOMPONENT_FIELD_REQUIRED'));
       return false;
     }

    return $data;
  }
}
1
Nagarjun