Autor Zpráva
Medvídek
Profil
Zdravím,
u skriptu na změnu typu inputu mi zlobí focus ve všech verzích IE, Ve FF a Chromu to funguje.

function replaceT(obj){
var newO=document.createElement('input');
newO.setAttribute('id','psswd');
newO.setAttribute('type','password');
newO.setAttribute('name',obj.getAttribute('name'));
newO.className ='psswd-input';
obj.parentNode.replaceChild(newO,obj);
document.getElementById('psswd').focus();
}

<input class="psswd-input" type="text" name="psswd" id="psswd" value="heslo" onfocus="replaceT(this)">


Nevíte, proč to IE nebere?
Chamurappi
Profil
Reaguji na Medvídka:
document.getElementById('psswd').focus();
Co myslíš, že ten document.getElementById najde? To, co už máš v obj, nebo to, co už máš v newO? Je zbytečné hledat podle ID to, co už máš v proměnné, ne?

Zvolený způsob zobrazování popisku na místě místě <input>u mi připadá krkolomný. Je záměrem, aby uživatelé bez skriptování vepisovali heslo do obyčejného textového <input>u?

Mimochodem, doporučuji užívat standardní vlastnosti HTML DOMu místo getAttribute/setAttribute.
Medvídek
Profil
Chamurappi:
Co myslíš, že ten document.getElementById najde? To, co už máš v obj, nebo to, co už máš v newO? Je zbytečné hledat podle ID to, co už máš v proměnné, ne?

Samozřejmě jsem to zkoušel nejprve pomocí toho, co už mám v té proměnné, se stejným výsledkem.

Zvolený způsob zobrazování popisku na místě místě <input>u mi připadá krkolomný. Je záměrem, aby uživatelé bez skriptování vepisovali heslo do obyčejného textového <input>u?
Takový je prostě požadavek, popisy inputů přímo v nich. Uživatelé bez js na těch stránkách stějně nebudou mít co dělat, takže to neřešim, jestli má nebo nemá uživatel js.

Mimochodem, doporučuji užívat standardní vlastnosti HTML DOMu místo getAttribute/setAttribute.
To jsem si četl, když sem nemohl zjsitit, proč nefungovalo setAttribute class v IE a použil sem tvoje doporučení.

Ale stále nevim, čím je způsobeno, že nejde ten focus.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0