2011-09-08 95 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') –