2016-03-25 83 views
0

任何人都可以幫我用這個腳本我試圖讓工作?我需要一個帶有提交按鈕的文本框,當輸入某個id時,我需要將它們重新定向到某個站點(腳本中的示例是yahoo,bing等)。JavaScript不工作的URL重定向

這是我到目前爲止,但提交按鈕不顯示,當提交按鈕被擊中它似乎並沒有執行腳本。

我剛剛得到一個#?添加到網址...我在opencart工作,所以我認爲問題的一部分可能與opencart。

<html> 
<head> 
<script> 
document.getElementById("gobutton").addEventListener("click", function(event){ 
event.preventDefault() 
var idmap={ 
REDDIT:"http://reddit.com", 
YAHOO:"http://yahoo.com", 
BING:"http://bing.com" 
}; 
id=document.getElementById("siteid").value; 
if (id in idmap) { 
alert("going to "+idmap[id]); 
window.location.href=idmap[id]; 
} else { 
alert("invalid code ["+id+"]") 
} 
event.preventDefault() 

}); 
</Script> 
</Head> 
<Body> 

<form id="urllauncher" action='#'> 
<label for="siteid">Site id</label> 
<input type="text" id="siteid"> 
<button type="submit" id="gobutton">Go</button> 
</form> 

</Body> 
</Html> 

感謝您的任何幫助!

+0

而不是'window.location.href = idmap [id];'use'window.location = idmap [id];' – animaacija

回答

1

您應該在身體的末尾添加腳本。

您打電話document.getElementById("gobutton").addEventListener爲時尚早,此時button尚未出現在頁面DOM中,因此未附加任何事件。

工作代碼:

<html> 
    <body> 
     <form id="urllauncher" action='#'> 
      <label for="siteid">Site id</label> 
      <input type="text" id="siteid"> 
      <button type="submit" id="gobutton">Go</button> 
     </form> 

     <script> 
      document.getElementById("gobutton").addEventListener("click", function(event){ 
       event.preventDefault() 
       var idmap = { 
        REDDIT:"http://reddit.com", 
        YAHOO:"http://yahoo.com", 
        BING:"http://bing.com" 
       }; 
       var id = document.getElementById("siteid").value; 
       if(id in idmap) { 
        alert("going to "+idmap[id]); 
        window.location.href=idmap[id]; 
       } else { 
        alert("invalid code ["+id+"]") 
       } 
      }); 
     </script> 
    </body> 
</html> 

PS:嘗試之前發佈它縮進代碼!

0

我想如果你刪除那個表單標籤,它會解決你所有的問題。

0

我認爲有沒有必要爲它是提交類型,並且必須在所有

形式只是刪除那些與event.preventDefault()