web-dev-qa-db-fra.com

Validation de formulaire avec des champs ayant la valeur d'espace

C’est le champ dans le formulaire côté administrateur qui doit être demandé.

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

Dans le formulaire, si je laisse ce champ vide (null), une erreur de validation indiquant un champ non valide s'affiche.

Mais si je laisse un espace, il soumet la page et l'espace stockés dans la base de données.

Existe-t-il un moyen de valider le formulaire même si un champ particulier a un espace au lieu de vide?

1
Malaiselvan

Vous pouvez utiliser la validation côté client. Donc, premièrement, ajoutez ce qui suit à la vue formulaire (Choisissez-en une en fonction de votre version de Joomla)

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

Ajoutez ensuite le form-validate classe à votre formulaire si cela ressemble à ceci:

<form class="form-validate">

Ajoutez ensuite les classes requises à votre champ de formulaire de la manière suivante:

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

Puis appliquez la même chose à votre bouton d'envoi de formulaire, comme suit:

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

Et enfin, vous pouvez utiliser le jQuery suivant:

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

Si votre modèle étend JModelAdmin ou JModelForm, vous pouvez utiliser sa fonction de validation pour valider l'entrée client avant de l'enregistrer dans la base de données.

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