2010-03-02 331 views
5

我正在處理一個腳本,我希望它所做的(現在)是基於他們按哪個按鈕來重定向用戶。最終它將採用表單輸入並將其合併到重定向中,但現在我只是試圖讓按鈕將用戶發送到適當的站點。但是,我的重定向不起作用。頁面重定向

<html> 
<head> 
<title> 
Home 
</title> 
</head> 

<body> 

<script type="text/javascript"> 
<!-- 

var textstring; 
var btnWhichButton; 

//Gets the text from the form 
function getQ() { 
    textstring = document.forms['Search'].elements[0].value; 
} 

//Does a Google Search 
function googleSearch() { 
    window.location ="http://www.google.com"; 
} 

//Does a YouTube Search 
function youtubeSearch() { 
    window.location = "http://youtube.com"; 
} 

//Figure out which button was pressed 
function whichButton() { 
    if (btnWhichButton.value == 'Google Search') { 
     googleSearch(); 
    } else if (btnWhichButton.value == 'YouTube Search'){ 
     youtubeSearch(); 
    } 
} 

//main function to run everything 
function main() { 
    getQ(); 
    whichButton(); 
} 
// --> 
</script> 


<form name="Search" > 

<input type="text" name="q" size="31" maxlength="255" value="" /> 
<input type="submit" value="Google Search" onclick="btnWhichButton=this; main();" /> 
<input type="submit" value="YouTube Search" onclick="btnWhichButton=this; main();" /> 

</form> 
</body> 

</html> 

當按下其中一個按鈕,頁面只是用] Q =重新加載附加到URL,它不重定向。任何幫助?

+1

兩件事情,真正提高了我的JS: 1.使用Firebug調試代碼 2.使用jQuery實現更努力了相同的結果,並享受瀏覽器兼容的免費 – DanJ 2010-03-02 07:12:43

+0

附註:如果我更換帶警報的window.location('');這樣可行。所以我知道onclick動作正在執行。另外,有趣的是,如果我用警報包圍重定向,則重定向起作用。 – hodgesmr 2010-03-02 07:16:52

+0

@DanJ不能同意你更多... – 2010-03-02 07:19:11

回答

1

要使用button而不是input type='submit'。您當前的按鈕正在提交表單,而不是執行其onclick操作。

或以某種方式阻止提交操作。或者你可以使用你的函數將表單動作設置爲url並讓它提交。

+0

謝謝。這回答了我的問題。 – hodgesmr 2010-03-02 07:28:24

0

您的腳本看起來過於複雜。爲什麼不能有三個功能:getQ,googleSearchyouTubeSearch?然後在onClick事件中,您可以調用確切的功能,包括輸入參數中的this.value,並從該函數內部調用getQ?你的方法似乎效率很低。如果你打算爲他們每個人分別設置不同的功能,那麼通過其他兩種功能來獲得它們是沒有用的。

提交按鈕會始終提交表單沒有return false在onClick事件的結束,因爲默認發佈方法是GET,它連接?q=到您的網址的結尾,因爲那場是空白,它是唯一的輸入字段的形式。

0

要重定向到新頁面,您不需要使用大javascript功能。

<html> <body> 
    <input type="button" value="Google Search" onclick="javascript:window.location.href='http://www.google.com'" /> 
    <input type="button" value="You tube Search" onclick="javascript:window.location.href='http://youtube.com'" /> 
</body></html> 

請檢查是否有幫助。

0

就像賈森巴說的那樣,把你的輸入改爲「按鈕」而不是「提交」。此外,我寧願使用window.location.href而不是window.location而已。我不知道這是否是一個好習慣......開心編程。