2011-09-08 92 views
2

我有一些單選按鈕具有不同的數值。如何應用自動選擇選項,其中單選按鈕值小於其他單選按鈕值。Jquery:單選按鈕上的問題?

例:

  <table class="tbl"> 
        <tr> 
         <td><input type="radio" name="" value="15" /></td> 
        </tr> 
        <tr> 
         <td><input type="radio" name="" value="45" /></td> 
        </tr> 
        <tr> 
         <td><input type="radio" name="" value="10" /></td> 
        </tr> 
        <tr> 
         <td><input type="radio" name="" value="12" /></td> 
        </tr> 
        <tr> 
         <td><input type="radio" name="" value="25" /></td> 
        </tr> 
      </table> 
+0

你能說清楚'apply autoselect option'是什麼意思嗎? –

+0

我們需要選擇一個最小值的單選按鈕。 – Hearaman

回答

4

這可以在沒有each的情況下解決。只需找到最小值的索引,然後在下面的這個索引上選擇這個單選按鈕。

var radios = $(".tbl input:radio"); 
var vals = radios.map(function(index, el) { return parseInt($(el).val()); }).get(); 
var index = $.inArray(Math.min.apply(null, vals), vals); 

radios.eq(index).attr("checked", "checked"); 
+0

您避免使用每一個,但我認爲代碼由於它的可讀性低得多。 –

+0

@理查德,我同意,但我更喜歡這種方式 –

4

假設你的意思是選擇具有自動的最低值,那麼一個,這將做到:

var lowest; 
$(':radio').each(function() { 
    if (!lowest || parseInt($(this).val()) < parseInt(lowest.val())) 
     lowest = $(this); 
}); 
lowest.attr('checked', 'checked'); 

http://jsfiddle.net/gUnkq/13/

可能是一個更好的方式來做到這一點,但這工作。

+0

請檢查http://jsfiddle.net/gUnkq/中的代碼,它沒有給出正確的結果。 – Hearaman

+0

它爲我檢查值爲10的單選按鈕。我不明白這是不是正確的結果? –

+0

它不能正常工作,因爲你比較字符串,而不是int(應用'parseInt') –