如果url等于单选按钮值,则选中单选按钮

时间:2014-01-22 11:37:01

标签: jquery

我有4个单选按钮,每个按钮都有不同的网址值。

我用jQuery创建了这个脚本,以便在选中时将浏览器重定向到单选按钮值:

jQuery的:

jQuery('#searchfilter input').click(function () {
   if (jQuery('#searchfilter input').is(':checked')) {
      var value = jQuery(this).attr('value');
      window.location.href = value;
   }
});

HTML:

<div id="searchfilter">
   <div class="radio">
      <label>
         <input type="radio" value="url1" name="filter">URL1
      </label>
   </div>
   <div class="radio">
      <label>
         <input type="radio" value="url2" name="filter">URL2
      </label>
   </div>
   <div class="radio">
      <label>
         <input type="radio" value="url3" name="filter">URL3
      </label>
   </div>
   <div class="radio">
      <label>
         <input type="radio" value="url4" name="filter">URL4
      </label>
   </div>                 
</div>

新加载的页面包含相同的四个单选按钮。我想检查一下与网址具有相同价值的单选按钮。换句话说,我希望检查最后一个单选按钮以保持检查状态。

是否有一种精简而有效的方法在jQuery中执行此操作而无需运行四个ifs并为url值设置四个变量?

2 个答案:

答案 0 :(得分:2)

试试这个:

 $(document).ready(function (){
       $('#searchfilter input').each(function (){
          if($(this).val()==window.location.href){
            $(this).attr("checked","true");
          }
       }); 


    })

这是一个有效的fiddle

答案 1 :(得分:0)

也许这样的东西 - 它会循环遍历表单上的所有单选按钮,然后你会留下一个if语句。

$(document).ready(function() {
      $('input[type=radio]').each(function() {
           if ($(this).prop('value') == window.location))
           {
              $(this).prop('checked', true)
           }
       });
 });