javascript - JQuery 使用 .find 禁用 Radio 输入元素

标签 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);
    }
  });

最佳答案

使用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

关于javascript - JQuery 使用 .find 禁用 Radio 输入元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24688515/

相关文章:

python - BeautifulSoup 中未显示表元素

html - 表 tr 垂直方向。我能怎么做?

javascript - NodeJS - 本地范围已关闭( fatal error )

javascript - JSON.parse 给我一个错误,但 JSONLint 说它是一个有效的 json

java - jquery datatables 未定义不是一个函数

jquery - 如何有条件地执行 jquery 验证?

javascript - Div 和 ul 并排列出

javascript - 如何向 YouTrack 工作流程中的某些操作添加基于组或角色的限制?

javascript - Kendo UI - Kendo Validator

javascript - jquery中如何查找指定元素的前一个元素