2013-02-15 3 views
3

Я пытаюсь разработать свой первый компонент для Joomla. Я установил Joomla 3, и все идет неплохо.Joomla form validation missing error message

Я хочу добавить проверку формы (клиентскую сторону) в интерфейсе, где у меня есть форма отправки.

Мой код:

<?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> 

Валидация работает, но не показывает ошибку сообщение - просто поле. HTML для поля ошибки:

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

Итак, как я могу добавить текст в подтверждение? Нужно ли мне создавать языковой файл для моего компонента?

ответ

2

Вы должны изменить форму представить как кнопка input Попробуйте 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> 

Update: - Вы можете попробовать это also-

<?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> 

Это будет форма проверки на стороне клиента но не на стороне сервера. Для получения дополнительной информации проверить это - http://docs.joomla.org/Form_validation

+0

Документация по http://docs.joomla.org/Client-side_form_validation гласит, что мне нужно использовать

+0

@ user2075107: Вы попробовали то, что я предложил? – Irfan

+0

Да, я сделал. И тогда форма не будет даже суметь (я думаю, что это некоторая ошибка jquery). Если я использую тег

1

также убедитесь, что вы добавили этот код в index.php

<jdoc:include type="message" />