【发布时间】:2021-02-16 18:25:02
【问题描述】:
所以我有一个提交表单的按钮。还有一个 JS 函数,将用户输入格式化并保存在 localStorage 中,以便显示在确认登录页面上。
如果我提交表单然后手动进入确认页面,该功能可以完美运行。但是,我不能让按钮同时执行功能和进入确认页面。
<button id="submitForm" onclick="getFormInputValues(); window.location.href='/common/confirmation.html'">Make Reservation</button>
出于某种原因,我不明白。当我单击 Make Reservation 按钮时,它会执行该功能,但不会更改页面。如果我再次单击该按钮,它会进入确认页面,但不会执行该功能。如果我在单击按钮之前在字段中输入文本,它就永远不会起作用。只有在函数无法执行时才会换页。
提前感谢您的帮助。
/* Booking Page */
var nameField = document.getElementById("nameInput");
var emailField = document.getElementById("emailInput");
var dateDayField = document.getElementById("day");
var dateMonthField = document.getElementById("month");
var dateYearField = document.getElementById("year");;
var timeHourField = document.getElementById("hour");
var timeMinuteField = document.getElementById("minute");
var timeAmPmField = document.getElementById("am-pm");
var numberOfPeopleField = document.getElementById("numberOfPeople");
/* Variables for local storage */
var storedName = localStorage.getItem("storedName");
var storedEmail = localStorage.getItem("storedEmail");
var storedDate = localStorage.getItem("storedDate");
var storedTime = localStorage.getItem("storedTime");
var storedNumberOfPeople = localStorage.getItem("storedNumberOfPeople");
/* Functions */
function getFormInputValues() {
/* Name */
nameFieldUserInput = nameField.value;
localStorage.setItem("storedName", nameFieldUserInput);
/* Email */
emailFieldUserInput = emailField.value;
localStorage.setItem("storedEmail", emailFieldUserInput);
/* Date */
dateUserInput = dateMonthField.value + "/" + dateDayField.value + "/" + dateYearField.value;
localStorage.setItem("storedDate", dateUserInput)
/* Time */
timeUserInput = timeHourField.value + ":" + timeMinuteField.value + " " + timeAmPmField.value;
localStorage.setItem("storedTime", timeUserInput);
/* Guests Number */
numberOfPeopleUserInput = numberOfPeopleField.value;
localStorage.setItem("storedNumberOfPeople", numberOfPeopleUserInput);
};
function displayFormValues() {
document.getElementById("nameDisplay").innerHTML = storedName;
document.getElementById("emailDisplay").innerHTML = storedEmail;
document.getElementById("dateDisplay").innerHTML = storedDate;
document.getElementById("timeDisplay").innerHTML = storedTime;
document.getElementById("numberOfPeopleDisplay").innerHTML = storedNumberOfPeople;
};
【问题讨论】:
-
查看 preventDefault。
-
能否提供getFormInputValues函数的代码。这个函数中一定有一些东西阻止了重定向。
-
@atish 新增功能。
标签: javascript html function onclick