切换多个复选框 - 原型js

时间:2013-07-18 07:17:20

标签: javascript prototypejs toggle

我尝试为多个复选框实现切换,但如果我手动切换一个,则切换不再考虑该复选框。



var publishAll = $("toggle");
publishAll.observe('click', function(e){
	var state = null;
	if(this.checked) {
		state = "checked";
	} 
	$$('.checkbox').invoke('writeAttribute', 'checked', state);
});

<script src="https://ajax.googleapis.com/ajax/libs/prototype/1.6.1.0/prototype.js"></script>
<input id="toggle" type="checkbox" name="toggle" value="true"> Toggle checkbox<br /><br />
    
check these manually and it won't work with toggle anymore.<br />
<input class="checkbox" type="checkbox" name="checkbox[]" value="1"><br />
<input class="checkbox" type="checkbox" name="checkbox[]" value="2">
&#13;
&#13;
&#13;

我做错了吗?

1 个答案:

答案 0 :(得分:2)

您无需尝试将已检查的属性设置为“已选中”,而是需要使用javascript truefalse以及使用setValue()方法

所以你可以像这样简化你的javascript

$("toggle").observe('click', function(e){
  $$('.checkbox').invoke('setValue',this.checked);
});