 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
06.04.2006, 18:28
|
#1
|
|
TP-Supporter
Registriert seit: Jul 2001
Ort: Berlin
|
Paradoxon? Wie ist ein Textfeld gleichzeitig ein Passwordfeld?
Hallo zusammen,
wir haben ein Anmeldeformular bestehend aus
- USERNAME und - PASSWORT
Aus Platzgründen habe ich die Information um welche
Box es sich handelt in das Textfeld selber reingeschrieben.
Wie schafft man es aber nun, daß wenn man auf das
Textfeld raufklickt sich aus dem Textfeld ein Passwordfeld
mit Sternchen wird? (aus type="text" == type="password").
PHP-Code:
<input name="passwort" type="text" class="form" id="passwort" onfocus="if(this.value == 'Passwort') this.value='';" onblur="if (this.value=='') this.value='Passwort';" value="Passwort" />
Danke für jede Hilfe!
Beste Grüße
vom LoiK
|
|
|
06.04.2006, 19:07
|
#2
|
|
Guest
|
ich würd da andersrum rangehen, sprich per js aus dem passwort ein text machen. hier mal zusammengestümpert:
Code:
<body onload="document.getElementById('password').type='text';">
<input name="pass" id="password" type="password" value="holla die waldfee" onfocus="if(this.type=='text')this.type='password';if(this.value=='holla die waldfee')this.value='';" />
</body>
von wegen der privatsphäre und so.
geht aber garantiert noch tausendmal eleganter 
|
|
|
|
06.04.2006, 20:45
|
#3
|
|
TP-Moderator
Registriert seit: Aug 2004
Ort: Homburg / Saarland
|
|
|
|
07.04.2006, 11:56
|
#4
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
wie raffiniert 
|
|
|
07.04.2006, 12:53
|
#5
|
|
TP-Supporter
Registriert seit: Jul 2001
Ort: Berlin
|
Hallo Malleus!
Perfekt! Das ist es!
Vielen Dank + Beste Grüße
vom LoiK!
|
|
|
07.04.2006, 13:56
|
#6
|
|
TP-Supporter
Registriert seit: Jul 2001
Ort: Berlin
|
Dankeschön!
Geändert von LoiK (07.04.2006 um 15:01 Uhr).
|
|
|
07.04.2006, 14:56
|
#7
|
|
TP-Moderator
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
|
solche kleinen snippets liebe ich ja und habs mal etwas allgemeiner geschrieben:
Code:
<html>
<head>
<title>jaja...</title>
<script language="JavaScript" type="text/javascript">
function convert2Password(Obj, value) {
var nObj = Obj.cloneNode(true);
nObj.type = 'password';
nObj.onclick = null;
nObj.value = typeof value == 'undefined' ? '' : value;
Obj.parentNode.replaceChild(nObj, Obj);
window.setTimeout(function() {
nObj.focus();
}, 10);
}
</script>
</head>
<body>
<div id="myDiv"><input type="text" size="35" onclick="convert2Password(this)" value="Bitte hier das Passwort eingeben!"></div>
</body>
</html>
nur im IE und FF getestet - und das auf die schnelle
Gruss
Jan
PS: der Timeout sorgt dafür, dass der Focus überhaupt gesetzt werden kann: der Browser benötigt einen kleinen Moment um die Sache zu rendern. Bei ein direkter Funktionsaufruf wäre der Rendervorgang noch nicht abgeschlossen und es würde einen Fehler geben.
|
|
|
07.04.2006, 18:43
|
#8
|
|
Guest
|
moinsen
<pingelig>
funktionieren tut das ja alles, aber haltet ihr es nicht auch für sinnvoller von einem echten passwortfeld auszugehen? 
sollte javascript im benutzerbrowser nicht aktiviert sein, tippen die user ihr passwort in ein normales textfeld, was schlimmstenfalls (insofern autovervollständigen an) wieder rekonstruierbar ist.
</pingelig>
ich bin ja sonst nicht so, von wegen "jawennjavascriptausististalleslulu", aber bei passworteingaben fänd ich die sinnvolle auszeichnung schon wichtig.
deswegen mein suboptimaler beitrag mit dem onload. könnte man das sorum nicht auch in "schick" lösen? 
|
|
|
|
07.04.2006, 19:23
|
#9
|
|
TP-Specialist
Registriert seit: Nov 2004
Ort: Die Insel in Europa die aus Europa erst Europa macht _________________________ Nähe Lenzburg
|
und da man sowieso nicht lesen kann, was man eintippt, kann auch so Platz gespart werden:
HTML-Code:
Passwort <input type="password" style="width: 20px">
__________________
[321 Name="Joe"]
wie immer, lieber gleich mit notepad, dem Editor meines Vertrauens
[/321]
use my HTML-Tester
Motto'06: Mut zur deutschen Sprache!
|
|
|
07.04.2006, 20:31
|
#10
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
zu ingo - Du hast in einem Punkt Recht: Wenn kein Javascript zur Verfügung steht, sollte man dafür sorgen, das man alles korrekt bedienen / ausfüllen kann. Wenn es an ist, kann man das ganze durch Javascript besonders aufwerten.
zu 321: naja, wie sieht das denn aus, wenn plötzlich die Eingabe auf 20px schrumpft ...
zu StuckMojo - feine Sache, direkt universell benutzbar, Kompliment !
|
|
|
07.04.2006, 21:04
|
#11
|
|
TP-Specialist
Registriert seit: Nov 2004
Ort: Die Insel in Europa die aus Europa erst Europa macht _________________________ Nähe Lenzburg
|
@St@effen: Nicht plötzllich! von Anfangan so ausgeben und so lassen!
Bei vielen Inputfeldern kann man mehr eingeben als man sieht.
20 ist vllt. etwas gar kurz, aber mit 40 bis 50 siehts nicht schlecht aus
und ist immer noch kürzer als: Bitte hier Passwort eingeben!
__________________
[321 Name="Joe"]
wie immer, lieber gleich mit notepad, dem Editor meines Vertrauens
[/321]
use my HTML-Tester
Motto'06: Mut zur deutschen Sprache!
|
|
|
08.04.2006, 11:04
|
#12
|
|
TP-Moderator
Registriert seit: Aug 2004
Ort: Homburg / Saarland
|
Zitat:
|
Zitat von ingo
ich würd da andersrum rangehen, sprich per js aus dem passwort ein text machen. hier mal zusammengestümpert:
Code:
<body onload="document.getElementById('password').type='text';">
<input name="pass" id="password" type="password" value="holla die waldfee" onfocus="if(this.type=='text')this.type='password';if(this.value=='holla die waldfee')this.value='';" />
</body>
von wegen der privatsphäre und so.
geht aber garantiert noch tausendmal eleganter 
|
Hallo Ingo,
hast Du Dein Script mal mit MSIE und Opera 8.5 probiert. Bei mir funktioniert's leider nicht. Ich glaub' das war auch der Grund, warum ich das "Replace"-Konstrukt gebaut habe.
...werd' mal schauen, ob man das ganze etwas "sicherer" machen kann!
tschau
Frank
|
|
|
08.04.2006, 11:12
|
#13
|
|
TP-Moderator
Registriert seit: Aug 2004
Ort: Homburg / Saarland
|
Zitat:
|
Zitat von Stuck Mojo
solche kleinen snippets liebe ich ja und habs mal etwas allgemeiner geschrieben:
Code:
<html>
<head>
<title>jaja...</title>
<script language="JavaScript" type="text/javascript">
function convert2Password(Obj, value) {
var nObj = Obj.cloneNode(true);
nObj.type = 'password';
nObj.onclick = null;
nObj.value = typeof value == 'undefined' ? '' : value;
Obj.parentNode.replaceChild(nObj, Obj);
window.setTimeout(function() {
nObj.focus();
}, 10);
}
</script>
</head>
<body>
<div id="myDiv"><input type="text" size="35" onclick="convert2Password(this)" value="Bitte hier das Passwort eingeben!"></div>
</body>
</html>
nur im IE und FF getestet - und das auf die schnelle
Gruss
Jan
PS: der Timeout sorgt dafür, dass der Focus überhaupt gesetzt werden kann: der Browser benötigt einen kleinen Moment um die Sache zu rendern. Bei ein direkter Funktionsaufruf wäre der Rendervorgang noch nicht abgeschlossen und es würde einen Fehler geben.
|
Hallo Jan,
schön, daß Du auch wieder da bist!
Ich hab' mir auch schon überlegt, das ganze zu verallgemeinern, hab' mich aber dann für meine "innerHTML-getElementById" - Methode entschieden, da diese einfacher zu verstehen ist. Das mit "replaceChild" ist natürlich schöner. Bei meiner Version "mußt" Du ja ein HTML-Element haben, daß exakt ein Kind, nämlich das Input-Control, hat. Das ist bei Dir nicht so.
Ich muß auch gestehen, daß ich von der offiziellen W3C-Methode nichts halte und fast "immer" auf "innerHTML" zugreife, da es für "meine" Zwecke schneller (quirksmode.org) ausgeführt wird und nicht so komplex ist.
Eine kleine Frage bzgl. Deines Scripts:
Warum brauchst Du den zweiten "value" Parameter und die entsprechende Zuweisung. Die ist doch eigentlich unnötig oder willst Du das Password mit übergeben?
Tschau
Frank
|
|
|
08.04.2006, 22:01
|
#14
|
|
TP-Moderator
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
|
Zitat:
|
schön, daß Du auch wieder da bist!
|
...ja, ist leider recht selten geworden in der letzten Zeit... aber Arbeit geht nunmal vor. Und dort qualmen mir derzeitg die Finger
Zitat:
|
Ich muß auch gestehen, daß ich von der offiziellen W3C-Methode nichts halte und fast "immer" auf "innerHTML" zugreife, da es für "meine" Zwecke schneller (quirksmode.org) ausgeführt wird und nicht so komplex ist.
|
...klar, bei grossen Datenmengen geht nix über String-Verknüpfung per Array und innerHTML... bei kleinen Dingen sind die DOM-Dinger allerdings ausreichend und evtl. auch von Vorteil
Zitat:
Eine kleine Frage bzgl. Deines Scripts:
Warum brauchst Du den zweiten "value" Parameter und die entsprechende Zuweisung. Die ist doch eigentlich unnötig oder willst Du das Password mit übergeben?
|
...den value müsste man ehh leeren, daher hab ichs optional gemacht. Hat ansich keinen wirklichen Sinn.
Gruss
Jan
|
|
|
11.04.2006, 21:27
|
#15
|
|
TP-Moderator
Registriert seit: Aug 2004
Ort: Homburg / Saarland
|
Hi Ingo,
wie versprochen, hier ist die "schönere" Version. Wenn Javascript deaktiviert ist, ist das INPUT Control ein Password-Control
Test
Code:
<html>
<head>
<title>Malleus' Javascript FAQ: Text-INPUT in PASSWORD-INPUT verwandeln</title>
<script language="JavaScript" type="text/javascript">
function initPage()
{
document.getElementById("myDiv").innerHTML = "<input onclick='convert2Password(this)' type='text' id='myPassword' size='35' value='Bitte hier das Passwort eingeben!'>";
};
function convert2Password( obj )
{
obj = obj.parentNode;
obj.innerHTML = "<input type='password' id='myPassword' size='35'>";
window.setTimeout( "document.getElementById('myPassword').focus()" , 10 );
}
</script>
</head>
<body onload="initPage()">
<form name="myForm">
<div id="myDiv"><input type="password" name="myPassword" size="35"></div>
</form>
</body>
</html>
tschau
Frank
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 06:56 Uhr.
|
 |