页面重定向

时间:2010-03-02 07:09:22

标签: javascript html webforms

我正在编写一个脚本,我想要它(现在)根据他们按下的按钮重定向用户。最终它将采取表单输入并将其合并到重定向中,但是现在我只是试图让按钮将用户发送到适当的站点。但是,我的重定向无效。

<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 =附加到网址,它不会重定向。有什么帮助吗?

4 个答案:

答案 0 :(得分:1)

您想使用button而不是input type='submit'。您当前的按钮正在提交表单,而不是执行他们的onclick操作。

或以某种方式阻止提交操作。或者您可以使用您的函数将表单操作设置为url,然后让它提交。

答案 1 :(得分:0)

您的脚本看起来非常复杂。为什么没有三个功能:getQgoogleSearchyouTubeSearch?然后在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 。我不知道这是不是很好的做法......快乐的编程。