我在使用 JS 验证我的表单时遇到了一些问题。
这是 HTML,
<form action="xyz.php" method="post">
<div class="form-group">
<label class="sr-only" for="id1">Enter ID</label>
<input type="text" class="form-control" name="id1" id="id1">
</div>
<button onclick="validateID()" type="submit" name="submit" class="btn">Submit</button>
</form>
这是JS,
<script>
function validateID() {
var id = document.getElementById("id1").value;
var reg1 = new RegExp("^([0-9][0-9][0-9])$");
if (!(reg1.test(id))) {
document.location.href= "http://www.errorpage.com";
}
}
</script>
它应该根据正则表达式检查提交的表单值,如果验证失败,它必须重定向到错误页面。
但是,它不会重定向。当我用 alert() 代替 document.location.href= "http://www.errorpage.com";
时,它起作用了。
感谢任何帮助。
最佳答案
我认为这与 location.href 无关。这是因为按钮类型是提交和表单做默认的事情并将表单提交给 xyz.php。这就是为什么当他把 alert().它有效
改变
<button onclick="validateID()" type="submit" name="submit" class="btn">Submit</button>
输入按钮
<button onclick="validateID()" type="button" name="submit" class="btn">Submit</button>
或
在表单标签中使用 onsubmit="validateID()"并移除按钮的点击事件
关于javascript - 验证失败时重定向用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36875439/