Я не вижу вашего кода проверки выше, но если мы предположим, что это логическая функция, вы можете просто:
if (validatation()) {
$('#my-custom-form').submit(function(){
$('input[type=submit]', this).attr('enabled', 'enabled');
$('input[type=submit]', this).val('In process...');
});
} else {
$('#my-custom-form').submit(function(){
$('input[type=submit]', this).attr('disabled', 'disabled');
});
}
Я бы предложил две вещи:
1) Отбросить«В процессе ...», это только усложняет работу пользователя во второй раз, если вы не продолжаете выполнять валидацию () для каждого изменения и возвращаете текст обратно.
2) Добавьте двойной щелчокпрофилактика:
$('my-custom-form').submit(function(){
$('input[type=submit]', this).attr('disabled', 'disabled');
$('select', this).attr('disabled', 'disabled');
$('input[type=text]', this).attr('readonly', 'readonly');
$('textarea', this).attr('readonly', 'readonly');
});