2013-02-15 3 views
3

J'essaye de développer mon premier composant pour Joomla. J'ai installé Joomla 3, et les choses vont plutôt bien.Validation de formulaire Joomla manquant message d'erreur

Je veux ajouter une validation de formulaire (côté client) sur le frontend, où j'ai un formulaire de soumission.

Mon code est:

<?php 
// No direct access to this file 
defined('_JEXEC') or die('Restricted access'); 

// Add form validation 
JHTML::_('behavior.formvalidation'); 
?> 
<form class="form-validate" id="myForm" method="post"> 
    <input name="email" type="text" class="required validate-email" size="30" /> 
    <button type="submit" class="validate">Submit form</button> 
</form> 

La validation fonctionne, mais ne montre aucune erreur de message - juste un champ. Le code HTML pour le champ d'erreur est:

<div id="system-message-container"> 
    <div id="system-message" class="alert alert-error"> 
     <h4 class="alert-heading"></h4> 
     <div></div> 
    </div> 
</div> 

Alors, comment ajouter du texte à la validation? Ai-je besoin de créer un fichier de langue pour mon composant?

Répondre

2

Vous devez changer de forme comme le bouton d'envoi input Essayez this-

<?php 
// No direct access to this file 
defined('_JEXEC') or die('Restricted access'); 

// Add form validation 
JHTML::_('behavior.formvalidation'); 
?> 
<form class="form-validate" id="myForm" method="post"> 
    <input name="email" type="text" class="required validate-email" size="30" /> 
    <input type="submit" name="submit" value="Submit" /> 
</form> 

Mise à jour: - Vous pouvez essayer cette aussi-

<?php 
// No direct access to this file 
defined('_JEXEC') or die('Restricted access'); 

// Add form validation 
JHTML::_('behavior.formvalidation'); 
?> 
<form name="adminForm" id="myForm" method="post" onsubmit="return submitbutton();"> 
    <input id="email" name="email" type="text" class="required validate-email" size="30" /> 
    <button type="submit" class="validate">Submit form</button> 
</form> 
<script type="text/javascript"> 
/* Override joomla.javascript, as form-validation not work with ToolBar */ 
function submitbutton() { 
    var f = document.adminForm; 
    if (document.formvalidator.isValid(f)) { 
     document.adminForm.submit(); 
     return true; 
    } 
    else { 
     var msg = new Array(); 
     msg.push('Invalid input, please verify again!');   
     if($('email').hasClass('invalid')){ 
      msg.push('<?php echo JText::_('Invalid Email')?>'); 
     } 
     alert (msg.join('\n')); 
     return false; 
    }  
} 
</script> 

Ce validera formulaire au client côté mais pas côté serveur. Pour plus d'informations Cochez cette - http://docs.joomla.org/Form_validation

+0

La documentation sur les états http://docs.joomla.org/Client-side_form_validation que je besoin d'utiliser la balise

+0

@ user2075107: Avez-vous essayé ce que j'ai suggéré? – Irfan

+0

Oui, je l'ai fait. Et puis, le formulaire ne sera même pas sumbit (je pense que c'est une erreur jquery). Si j'utilise la balise

1

également vous assurer que vous avez ajouté ce code dans le index.php

<jdoc:include type="message" /> 
Questions connexes