2011-12-30 25 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。 现在如果用户选择Events,我想将用户重定向到mysite.com/search?type=Events 或者如果用户选择Classes,我想将用户重定向到mysite.com/search?type=Classes 作为对选择无线电。我如何实现这一目标?

+0

我同意Pointy。你想要什么都可以实现,但我不确定你应该如何处理这个问题。 – 2011-12-30 16:25:53

+0

更好的选择是拉取无线电值,执行搜索,然后在要重定向的页面中显示结果。如果单选按钮导致页面加载,那么在完成搜索之前,用户需要等待页面加载完成,或者重新输入搜索参数,除非要将它们传递到新页面。这对我来说似乎很烦人。 – Scott 2011-12-30 16:31:39

回答

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作为参数!!? – 2011-12-30 17:40:19