нужна помощь по чекбоксам
Есть 5 чекбоксов надо зделать так чтобы при нажатии на первый отмечался и 3тий. Я оч слаб в етом.
от что нарыл <html> <head> <title></title> <script type="text/javascript"> if (!Array.prototype.indexOf) Array.prototype.indexOf = function(value) { for (var i = 0; i < this.length; i++) if (this[i] === value) return i; return -1; } function checkIt() { var arr = document.getElementById('checkedItems').value.spli t(/,\s*/); var items = document.getElementById('items'); var checkboxes = items.getElementsByTagName('input'); for (var i = 0; i < checkboxes.length; i++) checkboxes[i].checked = arr.indexOf(checkboxes[i].value) != -1; } window.onload = function() { var itemsEl = document.getElementById('items'); for (var i = 1; i < 10; i++) itemsEl.innerHTML += '<input name="checkbox" type="checkbox" value="' + i + '">' + i + '<br>\n'; } </script> <style type="text/css"> .toolbox { position: fixed; float: left; top: 50px; left: 100px; border: solid 1px Silver; background: #f5f5f5; padding: 5px; } .toolbox span { cursor: pointer; } </style> </head> <body> <div class="toolbox">Values <input id="checkedItems" type="text" value="1,3" size="10"> <span onclick="checkIt()">Check!</span></div> <div id="items"> </div> </body> </html> |
<html>
<head>
<style type="text/css">
.checkbox_container {
background-color:#0066cc;
width:300px;
border:solid 2px;
}
.checkbox_container legend {
font-weight: bold;
color:red;
font-size:large;
}
</style>
</head>
<body>
<fieldset class ="checkbox_container">
<legend>5 чекбоксов</legend>
<p>
<input type ="checkbox"> чекбокс № 1</br>
<input type ="checkbox"> чекбокс № 2</br>
<input type ="checkbox"> чекбокс № 3</br>
<input type ="checkbox"> чекбокс № 4</br>
<input type ="checkbox"> чекбокс № 5</br>
</p>
</fieldset>
<script type="text/javascript">
var checkboxes = document.body.children[0].getElementsByTagName("input");
checkboxes[0].onclick = function() {
checkboxes[2].setAttribute("checked", "checked");
}
</script>
</body>
</html>
|
Shaci, у меня срабатывает только один раз, т.е. если снять все флажки и опять кликнуть первый чекбокс, то третий не реагирует. Так задуманно или косяк? (Chrome 17)
|
Цитата:
|
Ага, а если через свойство (checked = true), то многоразово работает. И понятно почему, кстати. Интересно =).
|
От спасибо за помощь все работает как надо.
теперь к етому надо ищо добавить чтобы когда 1 и 3 чекбоксы включены остальные были недоступны)) </head> <body> <fieldset class ="checkbox_container"> <legend>5 чекбоксів</legend> <p> <input type ="checkbox"> чекбокс 1</br> <input type ="checkbox"> чекбокс 2</br> <input type ="checkbox"> чекбокс 3</br> <input type ="checkbox"> чекбокс 4</br> <input type ="checkbox"> чекбокс 5</br> </p> </fieldset> <script type="text/javascript"> var checkboxes = document.body.children[0].getElementsByTagName("input"); checkboxes[0].onclick = function() { if(checkboxes[0].checked == true) { checkboxes[2].checked = true; } else { checkboxes[2].checked = false; } } </script> </body> </html> |
Цитата:
<html>
<head>
<style type="text/css">
.checkbox_container {
background-color:#0066cc;
width:300px;
border:solid 2px;
}
.checkbox_container legend {
font-weight: bold;
color:red;
font-size:large;
}
</style>
</head>
<body>
<fieldset class ="checkbox_container">
<legend>5 чекбоксов</legend>
<p>
<input type ="checkbox"> чекбокс № 1</br>
<input type ="checkbox"> чекбокс № 2</br>
<input type ="checkbox"> чекбокс № 3</br>
<input type ="checkbox"> чекбокс № 4</br>
<input type ="checkbox"> чекбокс № 5</br>
</p>
</fieldset>
<script type="text/javascript">
var checkboxes = document.body.children[0].getElementsByTagName("input");
var disableOtherChBx = function (){
checkboxes[1].disabled = true;
checkboxes[3].disabled = true;
checkboxes[4].disabled = true;
}
var unDisableOtherChBx = function(){
checkboxes[1].disabled = false;
checkboxes[3].disabled = false;
checkboxes[4].disabled = false;
}
checkboxes[0].onclick = function() {
if (this.checked) {
checkboxes[2].checked = true;
disableOtherChBx();
}
else {
unDisableOtherChBx();
}
}
checkboxes[2].onclick = function() {
if (!this.checked) {
unDisableOtherChBx();
}
else if(checkboxes[0].checked){
disableOtherChBx();
}
}
</script>
</body>
</html>
|
| Часовой пояс GMT +3, время: 05:14. |