Javascript переходит к привязке на основе представления значения / имени

Я работаю над страницей, которая в основном представляет собой длинную форму, с таблицами информации, за которой следует кнопка отправки после каждой таблицы.

Форма отправляет себе и изменяет информацию в таблицах на основе ввода пользователем.

То, что я хотел бы сделать, это перейти на страницу «Раздел X», если нажата кнопка «Отправить кнопку X», перейти к разделу «Раздел Y», если нажата кнопка «Отправить кнопку Y» и т. Д.

В настоящее время я использую этот Javascript в главе документа, чтобы попытаться выполнить следующее:

<script type="text/javascript"> var anchors = new Array( <?php for($i = 0; $i < 13; $i++) { $anchors = "\"$divTag[$i]\""; if($i < 12) { $anchors .= ", "; } echo $anchors; } ?> ) function jumpToAnchor() { <?php if(isset($_POST["submit_fjw"])) { ?> window.location = String(window.location).replace(/\#.*$/, "") + "#" + anchors[0]; <?php } if(isset($_POST["submit_jwl"])) { ?> window.location = String(window.location).replace(/\#.*$/, "") + "#" + anchors[1]; <?php } ?> } 

Это работает … любопытно. Он не прыгает при первом нажатии кнопки «Отправить», а второй.

Я открыт для предложений … меньше javascript лучше, потому что мои навыки javascript слабы в лучшем случае. Могу ли я использовать переменную, привязанную к кнопке отправки, которая передаст значение скрипту PHP и правильно перейдет в нужную секцию?

Solutions Collecting From Web of "Javascript переходит к привязке на основе представления значения / имени"

Вы пробовали что-то вроде этого?

 <form action="thisfile.php#section2" name="form1" ... > .... </form> <a name="section2"> <form action="thisfile.php#section3" name="form2" ... > .... </form> <a name="section3"> <form .... 

когда форма 1 отправляется, файл перезагружается и автоматически переходит на якорь с именем section2, когда отправляется form2, он прокручивается до раздела 3 и т. д.

Может быть, вам удобнее использовать http://www.w3schools.com/html/html_links.asp (раздел HTML-ссылки – Атрибут имени) вместо javascript? Просто предложение.

Я думаю, что div находится под кодом JavaScript. Выполнение location.hash = 'div-id' не будет работать, потому что браузер не проанализировал div во время выполнения скрипта. Вы можете попробовать переустановить код JavaScript (перемещая его где-нибудь после div) или обернуть логику внутри window.onload следующим образом:

 window.onload = function() { window.location.hash = "somediv"; } 

Другим возможным решением является изменение атрибута действия формы при нажатии кнопки:

 <form action="/post.php" method="post"> <!-- blah blah blah --> <input type="submit" onclick="this.form.action += '#div1';"> <input type="submit" onclick="this.form.action += '#div2';"> </form> 

После этого этот трюк не требует JavaScript.