任何人都可以帮助我使用这个脚本我正努力工作吗?我需要一个带有提交按钮的文本框,当输入某个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>
感谢您提供任何帮助!
答案 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()
即可