Валидация форм в joomla 1.5

Joomla 1.5 содержит встроенный функционал для валидации форм. Вы можете это заметить попытавшись ввести в поле для email формы обратной связи что-нибудь неправильное.

Если научнее joomla 1.5 включает функцию JHTMLBehavior::formvalidation(), которая представляет из себя ни больше не меньше чем:

function formvalidation() {
	JHTML::script('validate.js' );
}
Для того, чтобы включить валидацию необходимо лишь указать определенный класс для формы и необходимых полей в ней.

Для формы:
  • form-validate -> enable validation
Для элементов формы:
  • required
  • validate-username
  • validate-password
  • validate-numeric
  • validate-email
  • validate-[custom] -> включение особенной валидации.

Если какое-либо поле не прошло валидацию, его метка получит css-класс invalid.
То есть если вы назначите, например, красный цвет для этого элемента ваши юзеры будут знать с каким полем проблема.

Пример формы в которой невозможен сабмит без верных данных в поле email:

<?php JHTMLBehavior::formvalidation(); ?>
<script language="javascript">
function myValidate(f) {
        if (document.formvalidator.isValid(f)) {
                f.check.value='<?php echo JUtility::getToken(); ?>';//send token
                return true; 
        }
        else {
                alert('Some values are not acceptable.  Please retry.');
        }
        return false;
}
</script>
<form id="WV-form" method="post" class="form-validate" onSubmit="return myValidate(this);">
<input type="hidden" name="check" value="post"/>
...
<input type="text" name="email" size="30"  class="required validate-email"/>
...
<input type="submit" value="Submit" />
</form>

Для создания пользовательского условия проверки на валидность необходимо определить пользовательскую функцию проверки:

Window.onDomReady(function() {
        document.formvalidator.setHandler('birth', function(value) {
                regex=/^\d{4}(-\d{2}){2}$/;
                return regex.test(value);
        })
})

Теперь задав для поля класс validate-birth вы будете производить валидацию поля на предмет маски yyyy-mm-dd.

Комментариев: 2


Добавление комментария:

 css.php