2014-01-22 63 views
1

我有4個單選按鈕,每個按鈕都有不同的url值。如果url等於單選按鈕值,那麼檢查單選按鈕

我創造了這個腳本使用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> 

新加載的頁面包含相同的四個單選按鈕。我想檢查一下與url具有相同值的單選按鈕。換句話說,我想檢查最後一個單選按鈕以保持檢查狀態。

有沒有一個精簡而有效的方法來做到這一點在jQuery中,而不必運行四個ifs併爲url值設置四個變量?

+1

小提琴會更好:jsFiddle.net –

+0

你的後端是什麼?如果您正在運行PHP,我建議在頁面加載時動態設置按鈕值。否則當然這也可以用JS來實現。 – zelanix

回答

2

試試這個:

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


    }) 

這裏工作fiddle

+0

太棒了!謝謝,這正是我需要的。 – user2726041

+0

@ user2726041不客氣:) – semirturgay

0

像這樣的事情也許 - 它會遍歷窗體上的所有單選按鈕,你用一個被然後離開if語句。

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