javascript - JS 页面不会使用 location.href 重定向?
问题描述
我正在学习 Javascript,而这个基本的重定向并没有做任何事情。
警报触发,但我尝试过的任何版本的“页面重定向”代码似乎都没有工作。我已经尝试了 location.href、document.location.href、window.location 等的每个版本......
我只想在用户输入 == '85.5' 时切换 url。但是,尽管尝试了几个小时,它还是行不通。我在这里想念什么?谢谢!
我在一个表单元素中调用这个函数,如下所示:
<form onsubmit="showInput()">
<input type="text" id="question" name="inputz">
</form>
function showInput(){
var InputNumber = document.getElementById("question").value;
if(InputNumber == '85.5'){
alert("You escaped"); //this works
alert(InputNumber); //this works
window.location.href ='/Survive_The_Swamp3.html'; //this does NOT work
return false;
}
else {
alert(InputNumber);
document.location.href ="https://i.redd.it/twrza9clfsh21.jpg"; //also doesn't work
return false;
}
}
解决方案
这与window.location.href
.
您没有提交表单的任何内容。所以onsubmit
处理程序永远不会被调用。
当存在<input type="submit">
将呈现为按钮的表单时,将提交表单。如果表格内有表格,也可以提交<button>
表格。.submit()
如果这些都不存在,那么除非您通过在 javascript 中调用表单的方法手动提交表单,否则永远不会提交表单。
要触发您的代码,您需要等待<input>
更改事件:
<input type="text" id="question" name="inputz" onchange="showInput()">
onchange
然而,事件的工作方式存在一个微妙的问题。它们在输入获得新值之前被触发。因此,当您的用户键入时,"85.5"
您的事件处理程序将看到"85."
. 要获取当前值,您需要从事件对象中读取它:
function showInput(event){
var InputNumber = event.target.value;
//...
以这种方式工作的原因onchange
是允许您取消事件,从而阻止<input>
获取值。例如,您可以使用此功能来防止用户输入不是数字的内容。
推荐阅读
- python-3.x - 逐行创建多级数据框
- django - request.POST.get('username') 返回 NONE
- java - 是否可以使用 Java 为 Java Profiler 拍摄快照?
- firebase - 如何为存在系统设置正确的 Firebase 实时安全规则
- python - 在不同系统中使用 PyUSB 从 USB 设备读取时出现问题
- ios - 即使我添加相机使用说明/照片库使用说明也不显示警报
- sonarqube - SonarJs 仍然显示有关 postMessage 跨域问题的警告
- firebase-test-lab - 测试中不能打电话
- sql-server - 一段时间后访问令牌连接失败,登录失败 NT AUTHORITY\ANONYMOUS LOGON 错误
- google-chrome - Mac VoiceOver 是否会限制其在 Chrome / Firefox 上的功能?