Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Подскажите, что я сделал не так... (https://javascript.ru/forum/dom-window/65074-podskazhite-chto-ya-sdelal-ne-tak.html)

Fomax 23.09.2016 21:21

Подскажите, что я сделал не так...
 
Описывается реакция на событие onchange, элементы берутся через getElementsByClassName. (в моем случае получается 2 массива и в каждом по 2 элемента).

var mailandpass = document.getElementsByClassName('jsinputlog');
var ptext = document.getElementsByClassName('jsplog');


вот так все работает:

mailandpass[0].onchange = function(){
if(mailandpass[0].value==""){
	ptext[0].style.removeProperty("color");
	ptext[0].style.removeProperty("font-size");
	ptext[0].style.removeProperty("margin");
}else{
	ptext[0].style.color = "#cc1f1f";
	ptext[0].style.fontSize = "1.5vw";
	ptext[0].style.margin = "3% 17%";
}
}


(соответственно и с индексом 1 тоже работает)
__________________________________________________ _____________
а вот так не работает... может тут что то несуразное налепил, не так давно изучаю... Подскажите кто может :)

var i;
for(i=0; i < mailandpass.length; ++i){
	mailandpass[i].onchange = function(){
	if(mailandpass[i].value==""){
		for(i=0; i < ptext.length; ++i){
			ptext[i].style.removeProperty("color");
			ptext[i].style.removeProperty("font-size");
			ptext[i].style.removeProperty("margin");
		}
	}else{
		for(i=0; i < ptext.length; ++i){
			ptext[i].style.color = "#cc1f1f";
			ptext[i].style.fontSize = "1.5vw";
			ptext[i].style.margin = "3% 17%";
		}
	}
}
}

рони 23.09.2016 21:34

Fomax,
if(mailandpass[i].value==""){
потому что i в строке 4 всегда 2 -- а такого элемента у вас нет.

рони 23.09.2016 21:36

:cray: косяком пошли ...
http://javascript.ru/forum/misc/6505...tml#post429524

warren buffet 24.09.2016 13:39

Еще вот так можно сократить

mailandpass[0].onchange = function(){

	var s = ptext[0].style; // style is object

	if(mailandpass[0].value){
		s.color = "#cc1f1f";
		s.fontSize = "1.5vw";
		s.margin = "3% 17%";
	}
	else {
		s.color="";
		s.fontSize="";
		s.margin="";
	}
}


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