Перенаправление страницы - PullRequest
5 голосов
/ 02 марта 2010

Я работаю над сценарием, где все, что я хочу (прямо сейчас), это перенаправить пользователя в зависимости от того, какую кнопку он нажимает. В конце концов, он примет форму ввода и включит ее в перенаправление, но сейчас я просто пытаюсь заставить кнопки отправить пользователя на соответствующий сайт. Тем не менее, мои перенаправления не работают.

<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 = к URL, она не перенаправляется. Любая помощь?

Ответы [ 4 ]

1 голос
/ 02 марта 2010

Вы хотите использовать button, а не input type='submit'. Ваши текущие кнопки отправляют форму, не выполняя свои действия по нажатию кнопки.

Или заблокировать действие отправки каким-либо образом. Или вы можете использовать свои функции, чтобы установить действие формы для URL и просто разрешить его отправку.

0 голосов
/ 02 марта 2010

Ну, как говорит jasonbar, измените ваш тип ввода на «button», а не на «submit». Кроме того, я бы предпочел использовать window.location.href вместо window.location . Я не знаю, возможно ли это хорошая практика ... счастливое программирование.

0 голосов
/ 02 марта 2010

Для перенаправления на новую страницу вам не нужно использовать большую функцию 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>

Пожалуйста, проверьте, помогает ли это вам.

0 голосов
/ 02 марта 2010

Ваши сценарии кажутся слишком сложными. Почему бы не иметь три функции: getQ, googleSearch и youTubeSearch? Затем внутри события onClick вы можете вызвать точную функцию, включая this.value внутри входных параметров и вызов getQ изнутри этой функции? Ваш метод кажется крайне неэффективным. Если вы все равно будете иметь отдельные функции для каждой из них, вам не нужно проходить через две другие функции, чтобы добраться до них.

Кнопка отправки всегда будет отправлять форму без return false в конце события onClick, а так как метод отправки по умолчанию - GET, она прикрепляет ?q= к концу вашего URL, потому что это поле пустое и это единственное поле ввода в форме.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...