2015-10-02 3 views
2
function redirectHome() { 
    alert("here1"); 
    function setHref() { 
     alert("here2"); 
      window.parent.location.href="fprIndex.html?action=edit&aspect=<%=request("aspect")%>&id=<%=request("Request_ID")%>"; 
    }; 

    document.forms["form1"].submit(); 
    var timer = setTimeout(setHref, 1000); 
} 

redirectHome() вызывается с помощью кнопки «onClick()».setTimeout() целевая функция никогда не срабатывает

Первое предупреждение «here1» видно, но «here2» никогда не видели.

Что случилось?

Что делает работу, если я просто:

function redirectHome() { 
    document.forms["form1"].submit(); 
    window.parent.location.href="fprIndex.html?action=edit&aspect=<%=request("aspect")%>&id=<%=request("Request_ID")%>"; 
} 

То, что я сделать, это эффект задержка в 1 секунду с момента отправки формы, в то время редирект происходит - по чисто эстетическим причинам ,

+3

Не отправляет '.submit()' форму, которая отправляет вашу страницу в оба конца? Таким образом, устранение «location.href» происходит из-за того, что страница уже прошла до истечения таймаута? –

+0

Когда вы открываете консоль, вы видите какие-либо ошибки? –

+0

На ваше редактирование: Затем переместите строку '.submit()' внутри метода setHref() 'и забудьте строку' location.href'. Например: http://jsfiddle.net/zxd59bz7/ –

ответ

8

Вероятно, проблема заключается в том, что вызов submit() вызывает полный ответ на сервер, который похож на обновление страницы и означает, что следующий javascript не запускается.

+0

Моя форма имеет onSubmit = "return false", так что я могу вручную управлять представлением. Кнопка отправки формы имеет onClick = redirectHome() ' –

+0

Когда я просто делаю .submit(), сразу же после этого появляется .href = xxxxx, все работает, но делает это мгновенно. Я пытаюсь сделать небольшую паузу между submit и href redir. –

+1

Часть проблемы, которую вы испытываете, связана с первым ответом в этом вопросе SO: http://stackoverflow.com/questions/2543963/onsubmit-returning-false-is-not-working @ KirbyL.Wallace 'onSubmit 'событие не вызывается при отправке формы программно. –

Смежные вопросы