2016-10-11 120 views
0

我有它下面的代碼只是一個簡單的驗證腳本/代碼,檢查字段是否爲空它將引發錯誤消息,如果不是,則會引發錯誤消息。不知何故,它不工作即時只是一個初學者。驗證是有效的,但重定向不成功。JS腳本不能正常工作,如果與重定向

<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; 
} 
} 

的檢查,如果空的作品,但如果不爲空不正常的重定向。

+0

當重定向不工作會發生什麼? – jonathanGB

+0

您正在提交表單並且正在設置位置。挑一個或另一個。如果您想更改頁面,則只需設置表單的操作。 – epascarello

+0

'window.location.href ='../ continue.php';'這一行沒有問題。確保PHP頁面真的在做什麼,因爲如果你將頁面改爲例如谷歌,它的作品。 –

回答

4

好的,所以你有幾個問題。其中一個您試圖取消表單提交,但您在onsubmit處理程序中缺少返回語句。

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

下一個問題是你有一個表單試圖提交回自己,你正在設置的位置。所以你有兩種行爲有競爭條件,一個人會贏。所以你必須選擇一個。您可以提交表單,也可以更改位置。現在,如果您設置操作屬性,表單可以更改位置。

<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; 
} 

或否則返回false並設置位置像你。

+0

非常感謝!這很棒! – james

-3

將您的重定向代碼改爲

document.location =「yourlocationhere」;

+0

爲什麼會這樣?你以前試過你的代碼嗎? –

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; 
}