这适用于Opera,但显然没有别的。
HTML
<input type="checkbox" name="iphone" value="checked" checked="checked" />
<input type="checkbox" name="photocart" value="checked" checked="checked" />
JS
$("input[name=iphone]").attr('checked', 'checked');
$("input[name=photocart]").attr('checked', 'checked');
$("input[name=iphone]").attr('disabled', 'disabled');
$("input[name=photocart]").attr('disabled', 'disabled');
我也试过以下无济于事。
$("input[name|=iphone]").attr('checked', 'checked');
$("input[name|=photocart]").attr('checked', 'checked');
$("input[name|=iphone]").attr('disabled', 'disabled');
$("input[name|=photocart]").attr('disabled', 'disabled');
$("[name=iphone]").attr('checked', 'checked');
$("[name=photocart]").attr('checked', 'checked');
$("[name=iphone]").attr('disabled', 'disabled');
$("[name=photocart]").attr('disabled', 'disabled');
$("[name|=iphone]").attr('checked', 'checked');
$("[name|=photocart]").attr('checked', 'checked');
$("[name|=iphone]").attr('disabled', 'disabled');
$("[name|=photocart]").attr('disabled', 'disabled');
任何人都不高兴。关于如何实现这一目标的任何想法?
编辑: - Epic在复制HTML SORRY时失败了!
答案 0 :(得分:2)
答案 1 :(得分:1)
首先,您有两个名为“hosting”的元素,但您没有使用“input [name = hosting]”。
您的HTML:
<input type="checkbox" name="iphone" value="checked" checked="checked" />
<input type="checkbox" name="photocart" value="checked" checked="checked" />
JS(应该工作):
$('input[name=iphone]').attr('checked', true);
$('input[name=photocart]').attr('checked', true);
$('input[name=iphone]').attr('disabled', true);
$('input[name=photocart]').attr('disabled', true);
请记住,如果您有多个名为“iphone”或“photocart”的元素,jQuery也会更改其属性。
使用true
或false
代替'已选中'或'已停用'作为属性值。请记住,您正在操纵DOM,因此它与<input type="checkbox" disabled="disabled" />
不同。
答案 2 :(得分:1)
//for each one
$("input[name=photocart] :checked").val();
$("input[name=iphone] :checked").val();
//general, used with an event
result = $(this).is(":checked");
//general, used with a css class in common (add a class="checkable" to your target inputs)
$(".checkable:checked").each(function() {
result += this.value;
}
答案 3 :(得分:1)
attribute selector [name=val]
匹配具有属性 name 的所有元素,其值正好为val
。与此相反,[name|=val]
匹配具有属性 name 的所有元素,其值正好是“val
”或以“val
”开头,紧接着是“-
”。后者更倾向于与语言代码一起使用(例如[lang|=en]
匹配lang="en-US"
)。因此,使用前一个选择器进行精确匹配。
答案 4 :(得分:0)
请注意,您也可以这样做,并执行以下操作:
if ($("input[name=iphone]")[0].checked) // returns true or false depending on the value
if $("input[name=photocart]")[0].checked)
if ($("input[name=iphone]")[0].disabled) // returns boolean value
if ($("input[name=photocart]")[0].disabled)
$("input[name=iphone]")[0].checked = true;// sets the check to true (checked)
$("input[name=photocart]")[0].attr('checked', true);
$("input[name=iphone]")[0].disabled = false;// enables the input control
$("input[name=photocart]")[0].attr('disabled', true);
另一个很酷的技巧,将值设置为目前不是像toogle的那样:
$("input[name=iphone]")[0].checked = !$("input[name=iphone]")[0].checked;
编辑:将所有复选框设置为未选中的示例:
$("input:checked")[0] = false;// single
$('input:checked').each(function() {
this.checked = true;
});
注意如果你给他们一个名为“mycheckbox”的课程更简单:
var toggle_click = false;
$(function() {
$('.mycheckbox').click(function() {
$('.mycheckbox').each().checked = !this.checked;
toggle_click = !toggle_click;
});
});
如果选中它,请取消选中它:
$('.cptIcdCheckbox:checked').each(function() {
this.checked = !this.checked;
});
如果我有一个复选框列表和一个“标题”复选框可以取消选中它们或者根据“组标题”复选框值和它的点击和/或更改事件检查它们,我会使用此技术。