Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Не работает if .checked (https://javascript.ru/forum/misc/55143-ne-rabotaet-if-checked.html)

qwe88 15.04.2015 18:06

Не работает if .checked
 
Добрый день!
Подскажите, пожалуйста, почему не работает:
<script type="text/javascript">
	var che = document.getElementById("snyatlen1");
	var che2 = document.getElementById("men1");
	if(che.cheked == true){
		che2.className="vib2"
	}
	else{
		che2.className="vib1"
	}
</script>

<input type="checkbox" id="snyatlen1" />

<div class="vib1" id="men1"></div>

Safort 15.04.2015 18:15

Потому, что у тебя опечатка. Не cheked, а cheсked нужно)

рони 15.04.2015 18:16

qwe88,
потому что элементов ещё нет

theKingOfJava 15.04.2015 18:19

cheked/checked

ЗЫ и да, померяй местами js c html, как рони сказал

qwe88 15.04.2015 19:08

Поставил, но все равно не работает

<input type="checkbox" id="snyatlen1" />

<div class="vib1" id="men1"></div>


<script type="text/javascript">
var che = document.getElementById("snyatlen1");
var che2 = document.getElementById("men1");
if(che.checked == true){
che2.className="vib2"
}
else{
che2.className="vib1"
}
</script>

laimas 15.04.2015 19:18

<html> 
<head> 
<style>
.vib1 {
    color: #f00;
}
.vib2 {
    color: #0f0;
}
</style> 
</head> 

<body>
<input type="checkbox" id="snyatlen1" />
<div class="vib1" id="men1">Text</div>

<script type="text/javascript">
    document.getElementById("men1").className = document.getElementById("snyatlen1").checked ? "vib2" : "vib1";
</script>
</body> 
</html>

Что не работает? Если это по загрузке, будет работать, если при смене флажка, то не будет, нужно изменять стиль по щелчку еще.

qwe88 15.04.2015 19:21

У меня ваш пример почему-то не работает.
А через if все-таки нельзя решить?

Decode 15.04.2015 19:24

qwe88, http://jsbin.com/pusecavonu/1/edit?html,output

laimas 15.04.2015 19:32

Цитата:

Сообщение от qwe88 (Сообщение 366817)
У меня ваш пример почему-то не работает.
А через if все-таки нельзя решить?

А условная запись это разве не задание условия?

theKingOfJava 15.04.2015 19:33

qwe88,
Все там работает
<html>
<head>
<meta charset="windows-1251" />
<style>
.vib{background: yellow}
.vib1{background: red}
.vib2{background: green}
</style>
</head>
<body>

<input type="checkbox" id="snyatlen1" />
<div id="info"></div>
<div class="vib" id="men1">foo</div>


<script>

c=5
stop=setInterval(function(){info.innerHTML="До изменения осталось "+(--c)+" секунд."}, 1000)

    var che = document.getElementById("snyatlen1");
    var che2 = document.getElementById("men1");
 setTimeout(function(){
    if(che.checked == true){
        che2.className="vib2"
    }
    else{
        che2.className="vib1"
    }
    clearTimeout(stop)
    info.innerHTML=""
    delete c
}, 5000)
</script>
 

 
</body>
 
</html>

Пока идет счетчик, ставь или снимай галку, все будет видно.

laimas 15.04.2015 19:35

if(che.checked == true), а кроме true еще что-то может быть? :)

qwe88 15.04.2015 19:55

Decode,
Спасибо, ваш вариант работает (правда без if, ну и фиг с ни).
А почему тогда этот не работает?
<input type="checkbox" id="snyatlen1" />

  <div class="vib1" id="men1"></div>
  <div class="vib5" id="men5"></div>
  <script>
    var che = document.getElementById("snyatlen1");
    var che2 = document.getElementById("men1");
	var che3 = document.getElementById("men5");

    che.onchange = function() {
      che2.className = this.checked ? "vib2" : "vib1";
    };
	
	if(che2.className="vib1"{
		che3.className="vib9";
	}
	else{
		che3.className="vib5"
	}
   </script>

рони 15.04.2015 20:02

qwe88,
14 строка что делает по вашему?

qwe88 15.04.2015 20:10

рони,
Хотел, что бы он сделал так:
Если у дива с айди men1 класс vib1, то делаем двиву men 5 класс vib9, в ином случае у men5 будет класс vib5

рони 15.04.2015 20:19

Цитата:

Сообщение от qwe88
Если у дива с айди men1 класс vib1

где это в коде ? неужели в строке 14

qwe88 15.04.2015 20:21

рони,
Подскажите, пожалуйста, как написать мою трактовку?

рони 15.04.2015 20:39

qwe88,
поправьте синтасис 14 строка == а не = и если сравнение нужно в функции перенесите строку 12 в конец скрипта

qwe88 15.04.2015 20:42

Постави, но не работает
<input type="checkbox" id="snyatlen1" />

  <div class="vib1" id="men1"></div>
  <div class="vib5" id="men5"></div>
  <script>
    var che = document.getElementById("snyatlen1");
    var che2 = document.getElementById("men1");
	var che3 = document.getElementById("men5");

    che.onchange = function() {
      che2.className = this.checked ? "vib2" : "vib1";
    
	
	if(che2.className=="vib1"{
		che3.className="vib9";
	}
	else if(che2.className=="vib2"{
		che3.className="vib77";
	}
	};
   </script>

рони 15.04.2015 20:48

qwe88,
найдите нормальный редактор для кода
var che = document.getElementById("snyatlen1");
    var che2 = document.getElementById("men1");
	var che3 = document.getElementById("men5");

    che.onchange = function() {
      che2.className = this.checked ? "vib2" : "vib1";


	if(che2.className=="vib1"){
		che3.className="vib9";
	}
	else	che3.className="vib77";

	};

qwe88 15.04.2015 20:56

Спасибо огромное!
Скобку упустил)
А вы каким пользуетесь редактором?


Часовой пояс GMT +3, время: 03:53.