2014-09-02 3 views
1

Мой Javascript не перенаправляет. Вот то, что я пробовал:JavaScript не перенаправляет

<html> 
<head> 
    <title>Hello world</title> 
</head> 
<body> 
<form method="POST"> 
    Search: <input id="searchterm" type="text" name="searchterm"> 
    <input type="submit" value="Submit" onclick="processFormData()"> 
</form> 

<script> 
    function processFormData() 
    { 
     var term = document.getElementById("searchterm").value; 
     window.location = window.location.href + term; 
    } 
</script> 
</body> 
</html> 

Я хочу, чтобы пользователь будет перенаправлен на указанный URL независимо от того, в URL в браузере. Это должно быть универсальным на разных машинах. Я новичок в JS, пожалуйста, посоветуйте.

ответ

1

Во-первых, переместить декларацию обработчика onclick событий для <form> тега. Затем измените его на объявление обработчика события onsubmit. Наконец, добавьте return перед ним (чтобы предотвратить обработку событий по умолчанию, то есть на самом деле представления формы):

<form method="POST" onsubmit="return processFormData();"> 
    Search: <input id="searchterm" type="text" name="searchterm" /> 
    <input type="submit" value="Submit" /> 
</form> 

Затем также добавить return false; в конце processFormData:

function processFormData() 
{ 
    var term = document.getElementById("searchterm").value; 
    window.location = window.location.href + term; 
    return false; 
} 

Скрипки здесь: http://jsfiddle.net/xwcvq7bf/

+0

Я нашел это решение лучше всего. Спасибо за помощь! – TheKolaNN

1

Использование location.host. Попробуйте это:

function processFormData() 
{ 
    var term = document.getElementById("searchterm").value; 
    window.location = "http://"+location.host+"/"+term; 
    return false; 
} 

И,

<form method="POST"> 
    Search: <input id="searchterm" type="text" name="searchterm"> 
    <input type="submit" value="Submit" onclick="return processFormData()"> 
</form> 

Итак, теперь ваш URL будет выглядеть следующим образом: http://www.example.com/searchTerm

+0

Это не решит главную проблему, а именно с помощью неправильно обработчик события. –

+0

@HaukeP. Я обновил ответ. Проверьте это сейчас и сообщите мне, если вы все еще сталкиваетесь с тем же. –

0

Вы можете указать сам URL,

window.location = "url"+term; 

Если вы хотите получить только имя хоста (http://www.example.com),

window.location = location.hostname +"/"+term; 

или если вы хотите получить HREF (http://www.example.com/home/about.htm),

window.location = location.href +"/"+term; 
Смежные вопросы