我有一个HTML表单,我试图使用它来导航到另一个页面。我试图使用window.location.replace
将输入的值附加到表单的末尾,如下所示:
我几乎尝试了所有可以找到的技巧,但没有运气。我可以通过将window.location.replace
替换为window.open
来使其正常工作,但是我不想在新选项卡中将其打开。我也尝试过window.location.assign
,但是再也没有运气了。我尝试在Chrome控制台中运行这两个功能,并且从那里可以正常运行。我的代码在下面。
function onenter() {
var term = document.getElementById("searchbox").value;
window.location.replace("/search/" + term);
}
<form method="GET" onsubmit="onenter();">
<input id="searchbox" name="term" type="text" autofocus>
<button id="searchenter" type="submit">Enter</button>
</form>
我在做什么错/想念?
答案 0 :(得分:3)
您的问题是表单提交会重新加载页面。使用eventObject.preventDefault
:
function onenter(event) {
event.preventDefault();
var term = document.getElementById("searchbox").value;
window.location.replace("/search/" + term);
console.log(window.location);
}
<form method="GET" onsubmit="onenter(e);">
<input id="searchbox" name="term" type="text" autofocus>
<button id="searchenter" type="submit">Enter</button>
</form>