我有一個表單,並且驗證了javascript函數中的字段。驗證之後,我想重定向到另一個頁面。我想這對於形式:如果javascript條件爲true,則重定向不起作用
<form action="" method="post" name="form" onsubmit="return validate()">
User Name : <input type="text" name="realname" size="19"><span id="realnameerror" ></span>
<br>
E-Mail : <input type="text" name="email" size="25"><span id="emailerror" ></span>
<br>
PhoneNo : <input type="phoneno" name="phoneno" maxlength="10" size="25"><span id="phonenoerror" ></span>
<br>
<input type="submit" value="Submit">
</form>
這是驗證碼:
<script type="text/javascript">
var hasFocus = false;
function checkName(form) /* for name validation */
{...}
function checkEmail(form) /* for email validation */
{...}
function validPhone(form) /* for phone validation */
{...}
function validate()
{
hasFocus = false;
var form = document.forms['form'];
var ary=[checkName,checkEmail,validPhone];
var rtn=true;
var z0=0;
for (var z0=0;z0<ary.length;z0++)
{
if (!ary[z0](form))
{
rtn=false;
}
}
if (rtn)
{
window.location="http://test.dev";
return rtn;
}
else return rtn;
}
</script>
的一點是,所有的JavaScript功能都正常工作,我得到錯誤信息,如果有任何,但它不會讓我的重定向。奇怪的是,如果我把重定向到另一個腳本中,並且不進行驗證,它就會起作用。我不知道我做錯了什麼。我試圖把我的重定向爲另一種功能,只需要調用它像這樣:
if (rtn) { Redirect(); }
,但它仍然不起作用。而不是window.location我也試過window.location.href和document.location.href。我真的覺得有些東西是我在劇本里面失蹤的......如果你注意到了什麼,請讓我弄明白。謝謝!
我曾試圖在我的聲明中放置警報,並且它出現2秒鐘,然後重新生成。如果我不提醒說,我的重定向不起作用。這裏是代碼:
if (rtn) {
window.location="http://test.dev";
alert(rtn);
}
#1瞭解縮進; #2控制檯比我們更快,更容易地發現錯誤,特別是對於半可讀代碼 – Shomz
if(rtn) {//window.location="http://test.dev「; // return rtn; } –
你做的一件事var url =「http://test.deve」;然後警報(url)。在提醒框中複製網址。粘貼到您的瀏覽器。然後你會知道它的工作與否。 –