0

项目重点

切换复选框

特殊要求

需要绑定div.id container包含这些复选框的新(动态)添加。注意:div.id是动态生成的(客户端)。

地位

我的工作小提琴成功地在 1(one) 或 0(no​​ne) 复选框之间切换。

的HTML

<div id="bind_id">
    <input type="checkbox" name="iso_01[]" class="setTitlePre1" value="L/R" />
    <label for name "iso_01" class="isoVar1">No.1</label>
    <input type="checkbox" name="iso_01[]" class="setTitlePre2" value="Alt" />
    <label for name "iso_01" class="isoVar2">No.2</label>
</div>

工作脚本

var checkboxes;
checkboxes = $("input[name^=iso_01]").change(function (e) {
checkboxes.not(this).prop("checked", false);
}
});

期望的结果

.click()我在更新以.on("click","input..."查看Bound Fiddle时遇到语法问题

更新的脚本

var checkboxes;
checkboxes = $("#bind_id").on("change", "input[name^=iso_01]", function (e) {
if (this.checked) {
checkboxes.not(this).prop("checked", false);
}
});
4

3 回答 3

1

你的问题是,

checkboxes = $("#bind_id").on

没有做你认为它正在做的事情。它没有存储所有匹配的节点。

试试这个:

在回调中,改变

checkboxes.not(..)

$('input[name^=iso_01]').not(this).prop("checked", false);

工作小提琴

或者如果它们是动态加载的,您可以使用$('#bind_id').find('input[name^=iso_01]')

于 2015-01-20T05:07:04.587 回答
1

这不是复选框的用途。您应该使用单选按钮:

<input type="radio" name="example" value="1" id="1">
<label for="1">one</label>
<input type="radio" name="example" value="2" id="2">
<label for="2">two</label>

于 2015-01-20T05:16:07.343 回答
0

问题是checkboxes元素#bind_id,而不是复选框。您将需要find该元素的子元素,以获取子复选框元素。

工作示例:

var wrapper;
wrapper = $("#bind_id").on("change", "input[name^=iso_01]", function (e) {
    if (this.checked) {
        wrapper.find("input[name^=iso_01]").not(this).prop("checked", false);
    }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="bind_id">
    <input type="checkbox" name="iso_01[]" class="setTitlePre1" value="L/R" />
    <label for name "iso_01" class="isoVar1">No.1</label>
    <input type="checkbox" name="iso_01[]" class="setTitlePre2" value="Alt" />
    <label for name "iso_01" class="isoVar2">No.2</label>
</div>

于 2015-01-20T05:07:45.347 回答