2016-01-25 3 views
1

Я сделал тест, который делится на несколько страниц. Затем, когда люди нажимают кнопку отправки, я хочу перенаправить их после сохранения на следующую страницу. По какой-то причине кнопка отправки отправляется, а затем сразу обновляет страницу. Таким образом, javascript для перенаправления даже не запускается.Перенаправление после отправки формы (HTML, PHP)

HTML:

<form method="post" action="" id="formwrap"> 
    <!-- questions here --> 
    <input id="submitButton" class="block" type = "submit" name = "verzenden" value = "Opslaan" onClick="nextPage();"/> 
</form> 

И JavaScript:

function nextPage() { 
    window.location.href = "test.php"; 
} 

Любые идеи? Я уже пробовал: создание типа ввода = «кнопка», а затем создание функции отправки javascript; в теге <form>onSubmit="nextPage()"; Вещи с preventDefault, чтобы кнопка отправки не перезагрузила страницу.

У меня возникает ощущение, что это ДОЛЖНА для кнопки отправки, чтобы перезагрузить или что-то в этом роде. Возможно, есть способ перенаправить ПОСЛЕ перезагрузки страницы. Ну, я понятия не имею. Любая помощь будет более чем приветствуется!

+3

Почему бы просто не использовать кнопку отправки, цель которой следующая страница? –

+0

Это 2 javascript вещи, которые я пробовал .. function submitForm() {document.forms ["formwrap"]. Submit();} document.getElementById ("submitButton"). AddEventListener ("click", function (e) {e.preventDefault();}); – borrepol

+0

Согласен с @TimTroiano своим предложением –

ответ

0

Во-первых, удалите встроенный обработчик на кнопку отправки. Ваш HTML должен выглядеть так:

<form method="post" action="" id="formwrap"> 
    <!-- questions here --> 
    <input id="submitButton" class="block" type="submit" name="verzenden" value="Opslaan" /> 
</form> 

Затем обновить JavaScript, чтобы добавить обработчик событий, который предназначается submit события вашего formwrap элемента. Затем предотвратите создание формы с помощью обратной связи с preventDefault. Как только поведение по умолчанию будет предотвращено, вы можете отправить пользователя на любой URL-адрес, который вы хотите:

document 
    .getElementById("formwrap") 
    .addEventListener("submit", function(e) { 
    e.preventDefault(); 
    window.location.href = "test.php"; 
    }); 
+0

Спасибо за ответ! Я сделал это, но по какой-то причине я все еще не перенаправлен на новую страницу. – borrepol

+0

где и как вы объявляете свой javascript? Вы можете поместить тег сценария перед тегом закрывающего тега или обернуть его в callback или сортировку dom. – Seth

+0

У меня есть скрипка с ней, работающая здесь: https://jsfiddle.net/sethkrasnianski/mrbxv2dj/. Так что что-то не так с вашей реализацией. – Seth

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