У меня есть форма:
<form id = "formId" onsubmit = "addStudentData()"></form>
И функция javascript (найдите ЗДЕСЬ ЗДЕСЬ):
function addStudentData() {
let name = document.getElementById('sname').value;
let id = document.getElementById('sid').value;
let year = document.getElementById('syear').value;
let stream = document.getElementById('sstream').value;
/* Making a JSON object using the form values */
let studentObj = { 'name': name, 'year': year, 'stream': stream };
/* Pushing record to sessionStorage after stringify JSON Object*/
sessionStorage.setItem(id, JSON.stringify(studentObj));
/* Redirecting back to home page*/
**// HERE HERE HERE**
window.location.href = "index.html"
}
Я не понимаю, почему моя функция javascript не открывает index.html после сохранения данных в sessionStorage. Также, если можете, укажите другой способ сделать это.
нет нет ошибок
пробовали ли вы, window.open ("index.html", '_ self', false);
window.open () тоже не работает, а инструменты разработки не показывают никаких ошибок.
Что делает sessionStorage.setItem? Вы пытались поместить console.info () после этой строки, чтобы убедиться, что он возвращается и не дает сбоев?
Да, sessionStorage.setItemI () работает нормально, он сохраняет объект JSON в sessionStorage. Но когда я добавляю console.info ('sample') после sessionStorage.setItem (), тогда вывод журнала просто мигает, а затем снова открывается та же страница, хотя я перенаправляю ее на другую страницу.
просто попробуйте закомментировать все из этой функции, кроме window.location.href = "index.html"; и посмотрим, что произойдет. Какой браузер вы используете?
Он не работает даже после всех комментариев, кроме window.location.href = "index.html".
попробуйте написать return false; в конце вашей функции ..
Раньше я пробовал вернуть false, это не сработало.
Возможно, вам потребуется настроить демонстрацию, которая показывает эту проблему, потому что она не очевидна из вашего кода и комментариев.
После нажатия кнопки отправки URL-адрес изменяется на: ile: /// Y: / webUCA / ecmaScript6% 20project / student-portal-es6 / ne wItem.html? Sname = Ash utoh & sid = 22 & syear = 51 4 & sstream = CS Где sname, sid и т. д. - поля той же формы.
Ваша страница "index.html" находится в той же папке, что и текущая html-страница формы?
Вы пробовали добавить event.preventDefault() в саму форму? stackoverflow.com/questions/8664486/…
обе эти веб-страницы находятся в одном каталоге. Также для схематического представления моей проблемы перейдите по ссылке: drive.google.com/open?id=16VfWOBJ-GDHibIcslmUsFPw-0TdVLRWj
Добавление event.preventDefault () предотвратит отправку моей формы .. Это не выполнит мою задачу.
Вы пробовали window.location.replace ("index.html")?
попробуйте onsubmit = "return addStudentData ()" и внутри addStudentData верните false;
потому что index.html не является веб-сайтом. Попробуйте http://localhost/index.html или что-нибудь в этом роде.
window.location.replace ("index.html"); также не работает, и замена index.html на locahost / index.html не сработает, потому что я не размещаю свой веб-сайт на локальном сервере, это всего лишь две веб-страницы в одном каталоге.
Кроме того, другая кнопка на панели навигации работает нормально, если я нажимаю на нее, с надписью <a href = "index.html"> Home </a>. Но это не работает, я думаю, что отправка формы вызывает некоторые проблемы.
Что-то было не так с браузером, теперь он работает с теми же операторами. Я не мог найти проблему до сих пор. Но рад, что он работает. Спасибо всем за помощь.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Есть ли ошибки в инструментах разработки F12 (консольные или сетевые вкладки?).