JQuery使用.find来禁用Radio输入元素

时间:2014-07-11 00:45:33

标签: javascript jquery html

通过下面显示的HTML我试图禁用两个sRadio1输入或两个sRadio2输入(如果其中任何一个被检查),所以我尝试使用JQuery这样做,如下所示,但由于某种原因它不起作用。有人可以告诉我这里到底做错了什么以及如何解决?感谢

        <ul class="soptionslist">
          <li>
            <h2>Options</h2>
            <ul class="soptions">

              <li>
                <fieldset>
                  <input type="radio" class="sRadio" name="sRadio1">
                </fieldset>
                <fieldset class="option2">
                  <input type="radio" class="sRadio" name="sRadio1">
                </fieldset>
                <p>Option A</p>
              </li>

              <li>
                <fieldset>
                  <input type="radio" class="sRadio" name="sRadio2">
                </fieldset>
                <fieldset class="option2">
                  <input type="radio" class="sRadio" name="sRadio2">
                </fieldset>
                <p>Option B</p>
              </li>                    
            </ul>
           </li>
          </ul>

JQuery代码

  $(".soptions input").change(function() {
    if (this.checked) {
        $(this).parent('li').find('input').attr('disabled', true);
    } else {
        $(this).parent('li').find('input').attr('disabled', true);
    }
  });

2 个答案:

答案 0 :(得分:1)

使用closest()代替parent()

更改为:

 $(".soptions input").change(function () {
     if (this.checked) {
         $(this).closest('li').find('input').prop('disabled', true);
     } else {
         $(this).closest('li').find('input').prop('disabled', true);
     }
 });

兼容性:

对于JQuery 1.6 +:

使用.prop()功能:

$(this).closest('li').find('input').prop('disabled', true);

对于JQuery 1.5及以下版本:

.prop()功能不可用,因此您需要使用.attr()

$(this).closest('li').find('input').attr('disabled', true);

JSFiddle

答案 1 :(得分:0)

Fiddle

您需要使用.prop()代替.attr()

 $(".soptions input").change(function() {
    if (this.checked) {
        $(this).parent('li').find('input').prop('disabled', true);
    } else {
        $(this).parent('li').find('input').prop('disabled', true);
    }
  });

.prop()reference