我正在编写一个脚本,我想要它(现在)根据他们按下的按钮重定向用户。最终它将采取表单输入并将其合并到重定向中,但是现在我只是试图让按钮将用户发送到适当的站点。但是,我的重定向无效。
<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 =附加到网址,它不会重定向。有什么帮助吗?
答案 0 :(得分:1)
您想使用button
而不是input type='submit'
。您当前的按钮正在提交表单,而不是执行他们的onclick操作。
或以某种方式阻止提交操作。或者您可以使用您的函数将表单操作设置为url,然后让它提交。
答案 1 :(得分:0)
您的脚本看起来非常复杂。为什么没有三个功能:getQ
,googleSearch
和youTubeSearch
?然后在onClick事件中你可以调用确切的函数,包括输入参数中的this.value
并从函数内部调用getQ
?你的方法似乎非常低效。如果你将为每个函数分别设置单独的函数,那么通过其他两个函数来获取它们是没有用的。
提交按钮将始终在onClick事件结束时提交没有return false
的表单,并且由于默认发布方法是GET,因此将?q=
附加到您的URL末尾,因为field为空白,它是表单中唯一的输入字段。
答案 2 :(得分: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>
请检查它是否对您有所帮助。
答案 3 :(得分:0)
正如jasonbar所说,将输入更改为“按钮”类型而不是“提交”。另外,我宁愿只使用 window.location.href 而不是 window.location 。我不知道这是不是很好的做法......快乐的编程。