Я использую LiveValidation на livevalidation.com для простой и более сложной проверки форм в большинстве моих проектов.
В основном для улучшения срока действия пользователя.
Что я и сделал.
- заменить неверное сообщение из текста в изображение
- когда форма отправлена - и недействительна - сфокусироваться на первом недопустимом поле ввода
- когда форма отправлена - и недействительна - добавить красную рамку для всех недопустимых полей
Что я пытаюсь сделать:
- создать функцию, которая будет проверять форму - но только на текущей вкладке
Как мы можем сделать это «вручную»
- Мы можем создать еще одну переменную automaticOnSubmit2 = field4.form.onsubmit;
Где field4 всегда является первым вводом на текущей вкладке.
Поскольку мои вкладки будут созданы с неизвестным количеством вкладок - я ищу более универсальное решение.
Я сделал несколько попыток - но мои знания js / jquery очень плохие - поэтому я потерпел неудачу.
// попытка 1
$(".ui-tabs-panel:not(.ui-tabs-hide) > form")
это правильно - firebug можно найти только 1 - открытая / текущая вкладка - где находится форма, которую мы хотим проверить
$(".ui-tabs-selected").ready(function() {
var automaticOnSubmit = $(".ui-tabs-panel:not(.ui-tabs-hide) > form").submit;
$(".ui-tabs-panel:not(.ui-tabs-hide) > form").submit = function(){
var valid = automaticOnSubmit();
if(valid)alert('Form is Valid!');
else{
$(".LV_invalid_field:first", document.forms).focus();
}
return false
}
});
С наилучшими пожеланиями,
Peter