2014-10-13 14 views
-2

Мне тяжело работать с функцией setTimeOut. Позвольте мне сначала показать код.setTimeOut функция не работает должным образом

Вот мой код: -

function submitform(loginUrl, username, password) { 
    try { 
     loc = new String(window.location); 
     document.forms.frm_login.action = junctionUrl; 
     document.forms.frm_login.username.value = username; 
     document.forms.frm_login.password.value = password; 
     document.forms.frm_login.submit(); 
     setTimeout(gotoHomePage,4000); 
    } 
    catch (e) { 
    alert(e.message +"submit form"); 
    } 

} 

    function gotoHomePage() 
    { 
     alert("test"); 
     var url = "test.aspx"; 
     window.location=url; 
    } 

Но вот функция gotoHomePage вовсе не срабатывает по истечении указанного 4 секунды.

Что я делаю неправильно здесь. Пожалуйста, предложите.

Любая помощь будет оценена по достоинству.

Благодаря

+0

Можете ли вы разместить setTimeout (gotoHomePage, 4000); перед document.forms.frm_login.submit(); и попробовать ? – AAhad

+0

Когда часы начали? Является ли этот скрипт запущенным после события готовности документа или часы начинаются с разбора страницы? – Wayne

+0

Я попробую это, но не могли бы вы предложить мне, почему это сделать, спасибо –

ответ

0

форма представления перенаправляется на страницу результатов unload ИНГ текущей страницы. Таким образом, таймер не гаснет.

Используйте ajax или установите цель формы в iframe. Таким образом, текущая страница не выгружается и поэтому таймер блокирует выполнение функции таймаута.

<form target="form_output"> 
    <!-- other inputs --> 
</form> 

<iframe name="form_output"></iframe> 
Смежные вопросы