javascript无法用于网址重定向

时间:2016-03-25 16:38:53

标签: javascript html

任何人都可以帮助我使用这个脚本我正努力工作吗?我需要一个带有提交按钮的文本框,当输入某个id时,我需要将它们重定向到某个站点(下面的例子是雅虎,bing等)。

以下是我到目前为止所提供的内容,但是提交按钮没有显示,当提交按钮被点击时,似乎没有执行脚本。

我刚拿到#?添加到网址...我在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>

感谢您提供任何帮助!

3 个答案:

答案 0 :(得分:1)

您应该在正文的末尾添加脚本。

您过早地调用document.getElementById("gobutton").addEventListener,此时页面DOM中尚未显示button,因此没有附加任何事件。

工作代码:

<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:尝试在发布之前缩进代码!

答案 1 :(得分:0)

我认为如果您删除该表单标记,它将解决您的所有问题。

答案 2 :(得分:0)

我认为没有必要提交类型并且根本没有表格

只需删除那些和event.preventDefault()

即可