вроде бы и с этим разобрался, правда validate_field у меня не получилось - вставил проверку "к себе" - получилось следующее
Код:
var $submitAccount = $(document).find('#submitAccount').closest('form');
$(document).on('change', $submitAccount, function(){
var error = false;
var $sb = $submitAccount.find('.required input.validate:visible, .required textarea.validate:visible');
$sb.each(function(i){
$(document).on('focusout', 'input.validate, textarea.validate', function() {
if ($(this).hasClass('is_required') || $(this).val().length)
{
if ($(this).attr('name') == 'postcode' && typeof(countriesNeedZipCode[$('#id_country option:selected').val()]) != 'undefined')
var result = window['validate_'+$(this).attr('data-validate')]($(this).val(), countriesNeedZipCode[$('#id_country option:selected').val()]);
else
var result = window['validate_'+$(this).attr('data-validate')]($(this).val())
if (result)
$(this).parent().removeClass('form-error').addClass('form-ok');
else
$(this).parent().addClass('form-error').removeClass('form-ok');
}
});
if ($(this).parent().hasClass('form-error') === true || !$(this).val().length)
error = true;
if(i == $sb.length - 1 && !error)
$('#submitGuestAccount').click();
});
});
всё работает, за исключением одного момента:
если были ошибки и они исправлены, то "клик" сразу не происходит, только если еще исправишь какое нибудь поле (без разницы), при этом класс form-ok устанавливается и alert с ошибкой не пропадает
и, если сразу ввел с ошибками, то класс form-error стоит, но alert не появляется, исправляешь всё - везде зеленые галочки, но "клика" нет. Изменяешь любое поле - тогда "клик" происходит
Алекс, я понимаю, что уже замучал вопросами, но, надеюсь что это пригодиться и другим участникам форума