2

複数のチェックボックスのトグルを実装しようとしていますが、手動で切り替えると、チェックボックスはトグルによって考慮されなくなります。

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">

私は何か間違ったことをした?

4

1 に答える 1

2

チェックの属性を「チェック済み」に設定しようとする代わりに、javascript を使用するtruefalsesetValue()メソッドを使用する必要があります。

したがって、このようにJavaScriptを単純化できます

$("toggle").observe('click', function(e){
  $$('.checkbox').invoke('setValue',this.checked);
});
于 2013-07-22T19:50:27.227 に答える