Firefox autocomplete=“off” JavaScriptből
Ma már minden böngészőben alapfelszereltség a jelszókezelő, azonban lenne még hova fejlődni ezen a téren is, néha pedig kifejezetten keresztülhúzza a fejlesztői szándékot a jóhiszemű, de buta önkitöltő.
Minden kényelmi velejárója mellett előfordulnak olyan esetek, amikor nem kívánjuk, hogy a jelszókezelő előre kitöltse a mezőket, ilyen lehet mondjuk egy beállítások oldal, ahol egyebek mellett opcionálisan a jelszó is változtatható.
Felhasználóbarát fejlesztő természetesen nem rögzít jelszót megerősítés nélkül, így rögtön egy másodikPandánk szolgálatkészen ki is tölti az első mezőt, elvégre azt belépéskor megjegyezte, a másodikat azonban üresen hagyja, aminek egyenes következménye lesz, hogy ameddig ki nem tölti a felhasználó, addig nem tudja menteni beállításait. Szó mi szó, biztonsági intézkedésként nem utolsó, de az esetek többségében a felhasználói élmény talán mégis inkább élvez prioritást. (Ha a másodikat is kitöltené, sem volna ideális, lévén a probléma megoldódna, de két mezőnyi felesleges adatforgalmat, feldolgozást és adatbáziskérést emésztene fel, ezen túl pedig minden profilmódosításkor sima szövegben utaztatnánk a felhasználó jelszavát.)
Az Internet Explorer egyik legérdemesebb találmánya az
Mivel ragaszkodunk az érvényes HTML-hez, így – lesütött szemmel, és magunkban már mormolva is a penitenciaként kiszabott Miatyánkokat – csak a DOM-ba fogjuk beleszemetelni:Ez azonban nem működik. Minden bizonnyal előbb kerül kitöltésre, mint hogy attribútum deklarációnk érvényre jutna. Logikusnak tűnik a következővel próbálkozni:Ennél azonban úgy tűnik később kerül kitöltésre.
Egy nemrég blogmarkolt bejegyzésben azt javasolják, késleltessük a törlést:Ez azonban csúnya, nem túl megbízható, és a felhasználó is észleli a felvillanó jelszót.
A megoldással gex szolgált a megjegyzések közt. Az űrlapunkat ki kell egészítsük egy azonosítóval, majd az űrlapon belül elhelyezni a JavaScriptet:Ízlés szerint persze közvetlenül a
* A HTML5-től azonban már az: http://dev.w3.org/html5/spec/Overview.html#the-autocomplete-attribute
■ Minden kényelmi velejárója mellett előfordulnak olyan esetek, amikor nem kívánjuk, hogy a jelszókezelő előre kitöltse a mezőket, ilyen lehet mondjuk egy beállítások oldal, ahol egyebek mellett opcionálisan a jelszó is változtatható.
Felhasználóbarát fejlesztő természetesen nem rögzít jelszót megerősítés nélkül, így rögtön egy második
password
elem is bekerül mögé:
<form method="post" action="">
<dl>
<dt><label for="password">Jelszó</label></dt>
<dd><input type="password" name="password" id="password" /></dd>
<dt><label for="password_confirm">Jelszó ismét</label></dt>
<dd><input type="password" name="password_confirm" id="password_confirm" /></dd>
<dt><label for="email">E-mail</label></dt>
<dd><input type="text" name="email" id="email" value="kispista##kukac##example.com" /></dd>
<div><input type="submit" value="Küld" /></div>
</dl>
</form>
Az Internet Explorer egyik legérdemesebb találmánya az
autocomplete
tulajdonság, mely ugyan nem szabványos*, de rendkívül praktikus.Mivel ragaszkodunk az érvényes HTML-hez, így – lesütött szemmel, és magunkban már mormolva is a penitenciaként kiszabott Miatyánkokat – csak a DOM-ba fogjuk beleszemetelni:
$(document).ready(function () {
$('#password').attr('autocomplete', 'off');
});
$(document).ready(function () {
$('#password').val('');
});
Egy nemrég blogmarkolt bejegyzésben azt javasolják, késleltessük a törlést:
window.setTimeout(function () {
$('#password').val('');
}, 100);
A megoldással gex szolgált a megjegyzések közt. Az űrlapunkat ki kell egészítsük egy azonosítóval, majd az űrlapon belül elhelyezni a JavaScriptet:
<form method="post" action="" id="login">
<dl>
<dt><label for="password">Jelszó</label></dt>
<dd><input type="password" name="password" id="password" /></dd>
<dt><label for="password_confirm">Jelszó ismét</label></dt>
<dd><input type="password" name="password_confirm" id="password_confirm" /></dd>
<dt><label for="email">E-mail</label></dt>
<dd><input type="text" name="email" id="email" value="kispista##kukac##example.com" /></dd>
<div><input type="submit" value="Küld" /></div>
<script type="text/javascript">
$('#login').attr('autocomplete', 'off');
</script>
</dl>
</form>
body
végére is kerülhet.* A HTML5-től azonban már az: http://dev.w3.org/html5/spec/Overview.html#the-autocomplete-attribute
jquery
Egyébiránt köszönjük a bejegyzést.
onkeyup és autocomplete kapcsolata
onsubmit
hülyeség nem hülyeség
én kérek elnézést
ne kérj elnézést :)
erőforrás
az már csak hab a tortán hogy js nélkül nem lehet elküldeni az űrlapot, tehát ha én meg akarom óvni magam és a gépem/netem/stbm az ilyen fejlesztői f*szságoktól (bocs) akkor esélyem sincs regisztrálni.
+1, és egy kérdés lacy-hoz
De arra azért kiváncsi vagyok hogy egy jelszókitöltés közben minek kell szerverhez fordulni? Szerveren ellenőriztetted le hogy egyeznek-e a jelszavak? Nem lehetne azt JS-ben is megoldani? Mert ennél a pontnál tényleg átestél a ló túlsó oldalára.
üdv,
Balázs
ha nincs js
solkprog: Nem tudok róla, hogy a szerverhez fordulna jelszókitöltéskor, csak minden leütés megnézi a hosszát... a jelszóismétlő meg az egyezést.
"Jelszó újra"-ra gondoltam.
üdv,
Balázs
nem ott!
lényegében totál mindegy
Egyébként a "biztonsági kód ellenőrzőében" mit értesz a "jelszó erősségi csikót"?
üdv,
Balázs
captcha
fejezzük be...
üdv,
Balázs
Re:
lehet ezt jól is csinálni
igaz
1. kitöltesz egy mező és nyomsz egy tabot, akkor a tab lenyomására átugrik a következő mezőbe a kurzor, a tab felengedésekor pedig meghívódik a második mező onkeyup eseménye.:)) ez annyira gáz, de logikus.
2. azt vettem észre, hogy ha nagyon gyorsan gépelek akkor kikimarad vagy összecserélődnek a hívások, vagy nem megy el a szerverhez, ezt még nem tudom, de az új regformomnál ezért felhagytam az onkeyuppal, mert ha gyorsan gépeltem be az email címem és figyeltem a szerver válaszát akkor az email cím utolsó karakterének begépelése után az már nem jutott el a szerverig és vissza. nem tudom hol akadt el, de ott volt, hogy info KUKAC lacy.hu és a szerver utolsó válasza az volt, hogy az info KUKAC lacy.h egy nem valós email cím. így ez megbízhatatlan.:(
onkeyup, settimeout
2. onkeyup-ra nem küldesz egyből ajax kérést hanem csak időzítesz egyet 1-2 mp-cel későbbre. ha van új onkeyup ez alatt az 1-2 mp alatt, törlöd az időzítést és beállítasz egy újat.
erőforrásokról szépen elterelted a témát. ha kattingatok a név és emailcím mezők között akkor miért indulnak újra és újra ajax kérések?
mentett jelszavak?
ezt nem értem pontosan, lehet nálam a hiba. Pl FF ha megjegyzi a jelszót akkor azt ugye alapból kb 3 kattintással elő lehet szedni. Nemnagyon hallottam volna bárkit is aki használná ugye az ez ellen kitalált "mesterjelszót". Akkor hol itt a "nem utolsó" biztonsági intézkedés?
Live search
Mi alapján egészíti ki a mezőket a böngésző?
böngésző
Ezzel most nem tagadtad
kérdésére
de
akkor nem értem
Szerk: valószínű félreértettem a kérdést, az ugyanis nem arra vonatkozott, hogy mi tölti ki ezeket a mezőket, hanem arra, hogyha a böngésző kitöltötte, akkor elpostolhatja e (nyílván nem etikus szándékkal) az oldal. Ez így valóban megtörténhet. Elnézést mindenkitől, hogy félrevezettem a témát, mindenki lehet fáradt :)
csak meglett
azt viszont én se nagyon értem hogy a böngésző egy teljesen idegen oldalnál miért és mivel tölti ki a név/jelszó párost. a keresőmezőnél néha nekem is felajánl ezt-azt a firefox de jelszónál sose próbálta.