Похоже, что ваша функция принимает коллекцию jQuery, которая содержит поле ввода в качестве аргумента. Один из способов добиться этого, основанный на коде, ваша попытка может быть примерно такой: $("#formcontato").submit(function(event){ var input = $(this).find("input[type='text'], textarea"); event.preventDefault(); if (validar(input)){ $.ajax({ blablablabla }); } });
<input type="submit" class="btn" value="My Input Submit" disabled/>
Еще один простой способ достичь конечной цели - отключить кнопку отправки по умолчанию. Например:
validar
Вы можете изменить вашу true
функцию , чтобы вернуться valido
в случае , если вход активен. Таким образом вы можете использовать возвращаемое значение, чтобы определить, должна ли быть включена кнопка отправки. Например:function validar(input) { var valido = true; // lets assume its valid to start with if(input.attr("id") === "email"){ var filtro = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/; if(filtro.test(input.val())){ input.css('border-color', 'green'); } else { input.css('border-color', 'red'); valido = false; } } else if (input.val()===''){ input.css('border-color', 'red'); valido = false; } else if (input.val()!='') { input.css('border-color', 'green'); } return valido; }
focusout
Затем вы можете использовать использование возвращаемого значения в focusout
обработчике событий, чтобы включить кнопку, если форма действительна так:
$('input[type="text"],textarea').focusout(function() {
var isValid = validar($(this));
if (isValid) {
$('#formcontato').find('input[type="submit"]').prop('disabled', false);
}
});