如果使用重定向,JS脚本不起作用

时间:2016-10-11 02:42:37

标签: javascript html if-statement redirect

我有下面的代码只是一个简单的验证器脚本/代码,它检查字段是否为空它会抛出错误消息,如果没有则重定向。不知何故,它不起作用,我只是一个初学者。验证有效,但重定向时不是。

<body>
<div class="mail">
<h2>Input your Name and Submit</h2>
<form name="form1" onsubmit="required()">
<ul>
<li><input type='text' name ='text1'/></li>
<li class="rq">*Required Field</li>
<li><input type="submit" name="submit" value="Submit" /></li>
</ul>
</form>
</div>
<script src="non-empty.js"></script>
</body>

使用Javascript:

function required()
{
var empt = document.form1.text1.value;
if (empt === "")
{
alert("Please input a Value");
return false;
}
else 
{
window.location.href = '../continue.php';
return true; 
}
}

检查是否为空,但重定向(如果不为空)不起作用。

2 个答案:

答案 0 :(得分:4)

好的,你有几个问题。您试图取消表单提交,但在onsubmit处理程序中缺少return语句。

<form name="form1" onsubmit="return required()">

下一个问题是你有一个表单试图提交回自己并且你正在设置位置。因此,您有两个具有竞争条件的行动,其中一个将获胜。所以你必须选择一个。您提交表单,或更改位置。现在,如果设置了action属性,表单可以更改位置。

<form name="form1" onsubmit="return required()" action="NewPage.html">

和脚本:

function required() {
    var empt = document.form1.text1.value;
    if (empt === "") {
        alert("Please input a Value");
        return false;
    }
    return true;
}

或在else中返回false并设置与您相同的位置。

答案 1 :(得分:0)

你可以这样做:

<form name="form1" onsubmit="return required()" >
<ul>
<li><input type='text' name ='text1'/></li>
<li class="rq">*Required Field</li>
<li><input type="submit" name="submit" value="Submit" /></li>
</ul>
</form>

然后:

else 
{
  window.location.replace('../continue.php');
  return false;
}