我的实际代码比较复杂,但为了简化我的问题,基本上我有一个文本框,其中要求用户的名字,一旦他们按提交,我希望他们被重定向到一个新的页面,上面写着 "谢谢你________",空白处是他们在前一个表单中提交的名字。
目前,在他们按下提交后,他们停留在同一个页面上,一旦他们按下提交,文本框下面就会出现一段文字,并写着 "谢谢你________"。
我通过设置 "var name = document.getElementById("myText").value "来存储用户在文本框中输入的任何内容,如果我进入一个新的页面,我不知道如何将变量 "name "转移到该页面。
下面是我所说的代码,你可以测试一下,看看我的意思。我希望有一个新的页面,一旦按下提交按钮,就会显示 "谢谢你____",但我不知道如何将文本框的值转移到一个新的页面上。
.container2 > * {
vertical-align:top;
}
textarea {
border: 3px solid #FF9333;
resize: none;
height: 30px;
width: 300px;
}
textarea:focus{
border: 3px solid #E86D00;
outline: none;
}
button {
height: 30px; width: 70px;
color: #FFFFFF;
background-color: #FF7800;
border-left: 2px solid #DCDCDC;
border-top: 2px solid #DCDCDC;
border-bottom: 2px solid #ADADAD;
border-right: 2px solid #ADADAD;
outline: none;
}
button:hover {
background-color: #E86D00;
cursor: pointer;
}
button:active {
text
background-color: #FF8315;
border-right: 2px solid #DCDCDC;
border-bottom: 2px solid #DCDCDC;
border-top: 2px solid #ADADAD;
border-left: 2px solid #ADADAD;
}
<body>
<div class = "container2"><textarea placeholder = "Enter name here" style = "margin-right: 10" type="textarea" id="myText"></textarea>
<button id = "submit" onclick="getName();">Submit</button></div>
<p id = "result"></p>
<script>
var name;
function getName() {
name = document.getElementById("myText").value;
document.getElementById("result").innerHTML = "Thank you, " + name;
}
</script>
</body>
在代码中,我通过将变量 "name "设置为 "document.getElementById("myText").value "来存储提交的值,所以如果用户被引导到一个新的页面,"name = document.getElementById("myText").value "还能用吗?我很困惑,如何将文本框的值存储在一个变量中,而这个变量也可以在其他页面中使用。这是否仅仅取决于变量 "name "是全局的还是局部的?我所有的代码都是用Notepad++编写的)。
注意:我知道我可以在按下提交按钮后折叠文本框,通过设置显示为无,但我的实际代码比较复杂,所以如果我可以直接进入一个新的页面会更容易。
你可以把名字作为一个URL参数:www.yoursite.com?username=Anika
并在你的JS中使用它。
const queryString = window.location.search
const urlParams = new URLSearchParams(queryString)
const username = urlParams.get('username')