Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > неотображается изменение чекбокса


Автор: integral 5.8.2008, 11:08
есть чекбокс, выбор которого делает выбраными ряд других чекбоксов+дисеблит их, код примерно такой:
Код

if(document.getElementById("allIn").checked){
  document.getElementById("usersAll").checked = true; document.getElementById("usersAll").disabled = true;
  // и т.д.
}


В файрфоксе и опере работает отлично, а вот в ИЕ7 нет. Точнее, после того как я выбираю "allIn", остальные ("usersAll") остаются визуально без изменений, но когда пытаюсь по ним клацнуть, то они становятся задисейблеными и выбраными. Что делать с "ослом" что бы в нем все работало как у людейsmile?

Автор: comtat 5.8.2008, 13:45
вы случаем не делаете ли такую вещь как "Выбрать Всех" ?
если да то ваше решении неверное ..

Автор: Sanchezzz 5.8.2008, 13:51
Код

function selectAll(form) {
if (form.all.checked == true) {
check = true;}else{check = false;}
for (var i = 0; i < form.length; i++) {
var checkbox = form.elements[i];
if (checkbox.type == 'checkbox' && checkbox.name != 'all')
checkbox.checked = check;//ставим чекет свойство дизабде поменять не составит труда 
}           
}



Автор: integral 5.8.2008, 14:01
Цитата

вы случаем не делаете ли такую вещь как "Выбрать Всех" ?

случаем не, то просто для примера.
Стуруктура такого типа: Что-то: оно1, оно2, оно3
   Что-еще: еще1, еще2, еще3, еще4, еще5

А как нужно?
чего в ин7 срабатывает с запозданием?

Автор: comtat 5.8.2008, 15:00
Sanchezzz  предоставил Вам верное решение ... 
Ваше было не верно так как Вы прописывали все руками, 
это применимо при малых количествах чекбоксов и  несложной структуре.
В других случая:
1) Высокая вероятность запутаться в коде
2) Много ненужного кода
как то так ..

Автор: integral 5.8.2008, 15:35
Ребята, вы что - издеваетесь? я же задаю вполне конкретный вопрос - состояние чекбокса невовремя обновляется в ИЕ7, как это поправить?

Цитата(comtat @  5.8.2008,  15:00 Найти цитируемый пост)
Sanchezzz  предоставил Вам верное решение ... 

в чем принципиально отличие от моего кода, которое позволит решить мою проблему
Напоминаю, что: В файрфоксе и опере работает отлично, а вот в ИЕ7 нет. В ИЕ7 после установки определенного чекбокса, состояние других визуально не изменяется. После попытки клика по ним, они принимают то состояние, которое должны были принять ранее (дасейбленные+выбранные)


Цитата(comtat @  5.8.2008,  15:00 Найти цитируемый пост)
Ваше было не верно так как Вы прописывали все руками

это называется - не оптимально, не рационально. 


Еще раз вопрос: как сделать так, что бы ИЕ7 отображал измененное состояние зависимых чекбоксов сразу после изменения главного чекбокса

Автор: comtat 5.8.2008, 16:47
Прекрасно работает как под FF так и под IE 7
Код

<html>
<head></head>
<body>
<script>
function aa() {
  if(document.getElementById("allIn").checked){
      document.getElementById("usersAll1").checked = true; document.getElementById("usersAll1").disabled = true;
      document.getElementById("usersAll2").checked = true; document.getElementById("usersAll2").disabled = true; 
  }
}
</script>
<input type='checkbox' id='allIn' onclick='aa();' /><label for='allIn'>All</label>
<input type='checkbox' id='usersAll1' /><label for='usersAll1'>usersAll1</label>
<input type='checkbox' id='usersAll2' /><label for='usersAll2'>usersAll2</label>
</body>
</html>

Автор: integral 5.8.2008, 17:21
Другое дело - так бы сразуsmile спасибо!
свою ошибку нашел: я использовал 
Код

<input type='checkbox' id='allIn' onchange='aa();' />

вместо
Код

<input type='checkbox' id='allIn' onclick='aa();' />

еще рас спасибо

Автор: ksnk 5.8.2008, 18:50
integral, Угу... найдите в этих 2-х строчках 10 отличий? smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)