代码之家  ›  专栏  ›  技术社区  ›  dnagirl

$(this+':checked').val()的意外值

  •  1
  • dnagirl  · 技术社区  · 15 年前

    我有一套叫做“daypattern”的无线按钮。单击它应启用选中成员的FormField同级,并禁用其他成员的FormField同级(如果有)。我试图将选中字段的值与当前单选按钮的值进行比较,但选中字段的值返回的是一个整数,而不是单选按钮的“值”属性中的预期字符串。

    从哪弄到这个号码?我该如何修复它,还有更好的方法吗?

    谢谢

    问题函数:

        $.fn.setActiveState=function(){
            var c=$(this+':checked').val();//c=3 instead of 'everyday' OR 'everywday'. WHY?
            this.each(function(){
              alert(c + ' and '+ $(this).val());//3 and 'everyday' OR 'everywday'
              if($(this).val()== c){
                $(this).siblings(':input').removeAttr("disabled");  
              }else{
                $(this).siblings(':input').attr('disabled',true); 
              }
            });
        }
    

    HTML

    <label>
      <input type='radio' name='daypattern' value='everyday' checked='checked'/>Every 
      <input type='text'class='numtext' name='day_increment' value='1'/> day(s)
    </label>
    
    <label>
      <input type='radio' name='daypattern' value='everywday'/>Every weekday
    </label>
    

    调用问题函数 $(document).ready :

    $("input[name='daypattern']").setActiveState();
    
    2 回复  |  直到 9 年前
        1
  •  7
  •   Corey Ballou    15 年前

    尝试切换到:

    $(this).filter(':checked').val();
    
        2
  •  1
  •   gnarf    15 年前

    尝试

    var c=$(':checked', this).val();//