последовательность событий изменения jquery - PullRequest
0 голосов
/ 15 сентября 2018

Я добавил проверку ajax к текстовой области в моей форме и запустил ее с помощью onblur в html. Тем не менее, я заметил, что, если я иду к отправке, событие onblur не срабатывает. Прочитав много предыстории, я нашел трюк с setTimeout, который, я думаю, должен работать, задерживая отправку до размытия. Но я явно что-то делаю не так или неправильно понял, что происходит на самом деле, потому что это не работает.

Я кодировал следующее в блоке готовности документа в файле, прочитанном на моей странице в нижнем колонтитуле:

$('button[type="submit"]').click(function(){
    setTimeout(() => this,0);
    $("#description").trigger('blur');
});

Может кто-нибудь увидеть / объяснить мою проблему, пожалуйста

1 Ответ

0 голосов
/ 15 сентября 2018

Насколько я понимаю, вы отправляете значение текстового поля на сервер с помощью AJAX для его проверки.

Функция setTimeout не поможет в вашем случае.Сначала нужно дождаться результатов проверки.Отправьте форму после получения результата проверки.

Таким образом, ваш код может выглядеть следующим образом:

var isValid;

$("#description").on('blur', function(event){
    isValid = false;
    startValidation().then(function(){
        isValid = true;
        form.submit();
    });
});

$('button[type="submit"]').on('click', function(event){
    if (!isValid){
        event.preventDefault();
        return false;
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...