jQuery - 使用name属性首次单击时,选中并取消选中第二个复选框

时间:2016-08-30 06:52:48

标签: javascript jquery html checkbox

当我点击第一个(隐藏)时,我会尝试自动检查第二个checkobx(删除它!)?系统生成的html不包含复选框元素的任何id或类。我试图定位name属性,但每次都失败。

jQuery(document).ready(function($){
    $("input:checkbox[name='eddhd']").click(function() {
        $(this).parents('.eddhrd::nth-child(2))').siblings("input:checkbox[name='eddhrd']").find('input:checkbox').attr("checked","checked");
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<fieldset class="es-el eddhd">
    <div class="es-label">
        <label for="es-eddhd">Hide it</label>
        <br>
    </div>
    <div class="es-fields">
        <span data-required="no" data-type="radio"></span>
        <label>
            <input name="eddhd[]" value="Yes" type="checkbox"> Yes
        </label>
    </div>
</fieldset>
<fieldset class="es-el eddhrd">
    <div class="es-label">
        <label for="es-eddhrd">Delete it!</label>
        <br>
    </div>
    <div class="es-fields">
        <span data-required="no" data-type="radio"></span>
    <label>
        <input name="eddhrd[]" value="Yes" type="checkbox"> Yes
    </label>
    </div>
</fieldset>

5 个答案:

答案 0 :(得分:3)

尝试以下摘录。

&#13;
&#13;
$(document).ready(function($){
    $("input[name='eddhd[]']").change(function() {
        $("input[name='eddhrd[]']").prop("checked", $(this).is(":checked"));
    });
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<fieldset class="es-el eddhd">
    <div class="es-label">
        <label for="es-eddhd">Hide it</label>
        <br>
    </div>
    <div class="es-fields">
        <span data-required="no" data-type="radio"></span>
        <label>
            <input name="eddhd[]" value="Yes" type="checkbox"> Yes
        </label>
    </div>
</fieldset>
<fieldset class="es-el eddhrd">
    <div class="es-label">
        <label for="es-eddhrd">Delete it!</label>
        <br>
    </div>
    <div class="es-fields">
        <span data-required="no" data-type="radio"></span>
    <label>
        <input name="eddhrd[]" value="Yes" type="checkbox"> Yes
    </label>
    </div>
</fieldset>
&#13;
&#13;
&#13;

答案 1 :(得分:2)

您可以使用change功能检查复选框是checked还是check其他复选框,否则uncheck

$("input:checkbox[name='eddhd[]']").change(function () {
if ($(this).is(":checked"))
   $("input:checkbox[name='eddhrd[]']").attr("checked", "checked");
else
   $("input:checkbox[name='eddhrd[]']").attr("checked", false);
});

答案 2 :(得分:1)

您需要遍历DOM以从父fieldset元素的兄弟中找到复选框,然后使用.prop('property', value)设置已检查的属性。

&#13;
&#13;
$(document).ready(function($) {
  $("input[name='eddhd[]']").change(function() {
      $(this) //Referes to current element
        .closest('.eddhd') //Target parent fieldset with eddhd class
        .next('.eddhrd') //Target immediate sibling
        .find("input[name='eddhrd[]']") //Find the checkbox
        .prop("checked", this.checked); //set the checked property
  });
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<fieldset class="es-el eddhd">
  <div class="es-label">
    <label for="es-eddhd">Hide it</label>
    <br>
  </div>
  <div class="es-fields">
    <span data-required="no" data-type="radio"></span>
    <label>
      <input name="eddhd[]" value="Yes" type="checkbox">Yes
    </label>
  </div>
</fieldset>
<fieldset class="es-el eddhrd">
  <div class="es-label">
    <label for="es-eddhrd">Delete it!</label>
    <br>
  </div>
  <div class="es-fields">
    <span data-required="no" data-type="radio"></span>
    <label>
      <input name="eddhrd[]" value="Yes" type="checkbox">Yes
    </label>
  </div>
</fieldset>
&#13;
&#13;
&#13;

答案 3 :(得分:1)

试试这个

$word

答案 4 :(得分:1)

如果我是对的,您希望在另一个复选框上更改一个复选框的状态。对??下面是单击第一个复选框时检查第二个复选框的示例代码。

$('.es-el.eddhd input[type=checkbox]').on('change', function() {
      $('.es-el.eddhrd input[type=checkbox]').attr('checked', 'checked');
})