javascript - 验证失败时重定向用户

标签 javascript php

我在使用 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/

相关文章:

javascript - 如何判断一个字符串是否包含其他字符串?

PHPUnit3.6 与 Ant 替代 --log-pmd,--log-metrics?

php - Symfony VichUploaderBundle : File name could not be generated

javascript - Backbone.history.navigate 不保存参数

javascript - 如何在angularjs中对json数据进行分组

javascript - 使用 selenium 进行 headless javascript 下载

php - 数据库连接不上

php - 使用 mysqli 插入数据

php - MySQL:在Join语句和Join语句顺序中使用列别名?

javascript - 如何使用 JS 选择 input::placeholder?