2011-12-30 2 views
1

У меня есть три радиостанции, и я хочу, чтобы каждый из вас был перенаправлен на ссылку. Использование JavaScript или JQueryна выбранном радио, переадресовать на ссылку

All <input name="EventRadio" type="radio" value="" checked="checked"/>&nbsp; 
    Events<input name="EventRadio" type="radio" value="Events" />&nbsp;Classes<input name="EventRadio" type="radio" value="Classes"/><br /><br /> 

так, поскольку «Все» по умолчанию установлен, я хочу, чтобы перейти к mysite.com/search.aspx. теперь, если пользователь выбирает События, я хочу перенаправить пользователя на mysite.com/search?type=Events или если пользователь выбирает классы, я хочу перенаправить пользователя на mysite.com/search?type=Classes в качестве ответа на onselect of the radioios. Как мне это достичь?

+0

Я согласен с Точкой. То, что вы хотите, может быть достигнуто, но я не уверен, что вам следует обращаться с этим ситагонизмом. –

+0

Лучшим вариантом было бы вывести значение радио, выполнить поиск, а затем отобразить результаты на странице, на которую вы хотите перенаправить. Если переключатели вызывают загрузку страницы, пользователю нужно будет дождаться завершения загрузки страницы до завершения поиска или повторного ввода параметров поиска, если вы не перейдете на новую страницу. Мне это кажется раздражающим. – Scott

ответ

0
$('input').click(function(){ 
    var val = $(this).val(); 
    if(val !== ''){ 
     window.location = 'http://mysite.com/search?type=' + val; 
    }else{ 
     window.location = 'http://mysite.com/search.aspx'; 
    } 
}); 
3
All  <input name="EventRadio" type="radio" value="" checked="checked" onclick ="goToLocation(this.value)"/>&nbsp; 
Events <input name="EventRadio" type="radio" value="Events" onclick ="goToLocation(this.value)"/>&nbsp; 
Classes <input name="EventRadio" type="radio" value="Classes" onclick ="goToLocation(this.value)"/><br /><br /> 


function goToLocation(val){ 
if(val == "Events") 
    window.location = "go to Events location"; 
if(val == "Classes") 
    window.location = "go to Classes location"; 
window.location = "go to default location"; 

} 
1

В качестве демонстрации:

var inputs = document.getElementsByTagName('input'), 
    radios = [], 
    output = document.getElementById('output'), 
    url = 'mysite.com/search?type='; 

for (var i = 0, len = inputs.length; i<len; i++) { 
    if (inputs[i].type == 'radio'){ 
     radios.push(inputs[i]); 
    } 
} 

for (var r=0, leng = radios.length; r<leng; r++){ 
    radios[r].onchange = function(){ 
     if (this.value){ 
      /* in real life use: 
      document.location = url + this.value; 
      */ 
      output.innerHTML = url + this.value; 
     } 
     else { 
      /* in real life use: 
      document.location = 'mysite.com/search?type=Events'; 
      */ 
      output.innerHTML = 'mysite.com/search.aspx'; 
     } 
    } 
} 

JS Fiddle demo.

Обратите внимание, что я также поменял вашу марку, чтобы использовать элементы <label>, и удалил &nbsp; s и <br /> s.

+0

Спасибо. Теперь вместо того, чтобы выводить его, можем ли мы сохранить это как значение текущего URL-адреса? Если мы сможем, это решит мою проблему, потому что в основном я пытаюсь захватить значение строки запроса и перейти к параметру XSL в качестве параметра !!? –

Смежные вопросы