【问题标题】:filtering radio buttons in jquery, comparing values过滤jquery中的单选按钮,比较值
【发布时间】:2012-09-08 09:26:27
【问题描述】:

我有以下代码。尝试根据传入的数组值预填充单选按钮。会是 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 + ' 但它根本不喜欢那样。如何将变量注入该值区域。提前致谢。

【问题讨论】:

    标签: jquery filtering radio


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      你应该改变这一行:

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

      对于这个:

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

      【讨论】:

        【解决方案3】:
        $radios.filter('[value="' + ratingAnswer + '"]').attr('checked', true);
        

        如果这仍然不起作用,请仔细查看 ratingAnswer 的值,看看它是否符合您的预期。

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

        【讨论】:

        • 要设置checked 值,请使用prop 而不是attr
        猜你喜欢
        • 1970-01-01
        • 2015-09-03
        • 2015-09-22
        • 1970-01-01
        • 1970-01-01
        • 2012-12-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多