Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Změnit barvu textu za chodu.

Robil by som to asi takto:
1. Všetkým textboxom, ktoré sa majú kontrolovať, nastavím v class="validate". (html)
2. Pri nahratí stránky v obsluhe metódy onload prebehnem všetky elementy input type="text", ktoré majú nastavené class="validate" a nastavím im funkciu validate, aby obsluhovala udalosť onkeyup. Pri tejto inicializácii funkciu validate tiež zavolám, aby sa nastavila farba prvku podľa aktuálnej hodnoty. (js)
3. Funkcia validate kontroluje, či je vstup v prvku validný a podľa nastavuje element.className na "invalid". (js)
4. V štýle definujem farbu pre prvky ".invalid". (css)

// nastavuje el.className (pozor, el.className sú triedy oddelené bielymi znakmi,
// takže to nie je len el.className = className)
var helper =
{
	addClass: function (el, className) { ... },
	removeClass: function (el, className) { ... },
	hasClass: function (el, className) { ... }
};

// skontroluje hodnotu elementu a upraví className
function validate (el)
{
	if (el.value - 0 > 5)
		helper.addClass (el, "invalid");
	else
		helper.removeClass (el, "invalid");
}

// nainicializuje 1 textbox
function initTextbox (el)
{
	el.onkeyup = function () {validate (el)};
	
	validate (el);
}

// nahratie stránky
window.onload = function ()
{
	var els = document.getElementsByTagName ("input");
	var el;
	
	for (var i = 0; (el = els [i]); ++i)
		if (el.type == "text" && helper.hasClass (el, "validate"))
			initTextbox (el);
};

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny