在jquery中过滤单选按钮,比较值

时间:2012-09-15 13:09:23

标签: jquery filtering radio

我有以下代码。尝试根据传入的数组值预填充单选按钮。它将是1-3

<input name="rating1" type="radio" value="1" />
<input name="rating1" type="radio" value="2" />
<input name="rating1" type="radio" value="3" />

$(document).ready(function() {                         
    //Setting  up the radio buttons                    
    var $radios = $('input:radio[name=rating1]');
        //ratingAnswer is the value I need to select in the radio group. Value=2
    var ratingAnswer=answersArray[oneMap].RATING;
      if($radios.is(':checked') === false) {
        $radios.filter('[value=ratingAnswer]').attr('checked', true);
}

这不会给我任何回报,因为它正在寻找字符串ratingAnswer作为值而不是ratingAnswer的变量值。我已经尝试过value ='+ ratingAnswer +'但它根本不喜欢它。如何将变量注入该值区域。提前谢谢。

3 个答案:

答案 0 :(得分:6)

$radios.filter('[value="' + ratingAnswer + '"]').attr('checked', true);

如果仍然无效,请仔细查看ratingAnswer的值,看看它是否符合预期。

示例: http://jsfiddle.net/6zAN7/1/

答案 1 :(得分:2)

您应该更改此行:

 $radios.filter('[value=ratingAnswer]').attr('checked', true);

这个:

 $radios.filter('[value='+ratingAnswer+']').attr('checked', true);

答案 2 :(得分:0)

对此的一般解决方案 - 不假设值不会与jQuery选择器语法冲突 - 如下所示:

$radios.filter(function() { return this.value == varWithValueToBeChecked; }).prop('checked', true);