Получить форму onsubmit для возврата true из функции addEventListener - PullRequest
0 голосов
/ 08 декабря 2011

Вот проблема.У меня есть форма с различными входами и кнопка отправки.Когда пользователь нажимает «submit», он ожидает срабатывания события «addEventListener» (обычно в течение 3 секунд).Мне нужна форма, чтобы затем правильно отправить форму (желательно без использования AJAX).

$('#form').submit(function(){
    var ele=document.getElementById('audio');
    ele.addEventListener('canplay',function(){
        // After doing some stuff here, how do I get the parent function to
        // return true so that the form can be submitted?
    });
    // I put this here so that the browser is forced to wait for the
    // "addEventListener" event
    return false;
});

1 Ответ

1 голос
/ 08 декабря 2011

Сохраните логическую переменную, которая указывает, следует ли отправлять форму. Установите значение true из обработчика canplay:

(function () {
    var shouldSubmit = false;
    $('#form').submit(function(){ 
        var ele=document.getElementById('audio'); 
        ele.addEventListener('canplay',function(){ 
            // do some stuff here
            shouldSubmit = true;
        }); 
        return shouldSubmit; 
    }); 
})();

Это приведет к тому, что после события canplay форма может быть отправлена. Если вы хотите, чтобы форма была отправлена ​​сразу же после события canplay, позвоните form.submit() вместо этого:

$('#form').submit(function(){ 
    var ele=document.getElementById('audio'); 
    var form = this;
    ele.addEventListener('canplay',function(){ 
        // do some stuff here
        form.submit();
    }); 
    return false; 
}); 
...