HTML Input type tauschen defekte im IE8?
Habe ich eine website verwendet, die eine typische form für die user anlegen. Diese form legt den Namen des Feldes in das Textfeld ein und verwendet ein wirklich einfaches Skript deaktivieren Sie das Feld name, wenn das Feld den Fokus erhält.
Bekommen, wenn das Kennwort des Benutzers, ich bin derzeit auf der Lichtung der name des Feldes ("Passwort" in diesem Fall), und dann tauschen Sie den Feldtyp von text-Kennwort. Das hat geklappt, IE6, IE7, Firefox, und Safari, scheint aber gebrochen zu haben im IE8.
Ich bin mit der Linie ...
theBox.getAttribute('type')=='text'
... zu überprüfen, und geben Sie dann ...
theBox.setAttribute('type','password')
... um den Typ zu ändern.
Das Skript bricht nun im IE8 auf dieser Linie. Ich denke ich muss mich mit div tauschen, aber ich Frage mich, ob jemand anderes hat dieses und vielleicht ein Update.
Du musst angemeldet sein, um einen Kommentar abzugeben.
IE kann man nicht ändern, input geben. Sollten Sie ein neues element zu erstellen, und ersetzen Sie die vorhandene. Oder zeigen die ersten und verstecken das andere.
versuchen Sie dies:
if (theBox.type == 'text') { ...
und
theBox.type = 'password';
Als der Internet Explorer 8, - Ausdrücke werden nicht unterstützt im IE8-Modus. Weitere Informationen finden Sie unter http://msdn.microsoft.com/en-us/library/ms537634(VS.85).aspx.
Microsoft, nachdem Sie neu gestaltet IE8 für vollständige CSS2.1 compliance genommen haben, Ihre Freiheit in der Umsetzung zu einem schlechten Ort... wieder. Die standards sagen nichts über die Einschränkung Zugriff auf element-Attribute wie diese, und MS behaupten, Sie haben es getan aus Gründen der Sicherheit.
Einer umgehen, wäre, auf Fokus das Textfeld ein, ersetzen Sie es mit einem Passwort-Feld, die Unschärfe auf swaps zurück, das text-Feld. Erlauben Sie diesem folgenden code zu zeigen. Es ändert sich ein Textfeld mit dem Wert "Passwort" auf den Fokus auf ein leeres Feld Kennwort ein. Auf die Unschärfe dieses Feld Kennwort ein, wenn der Wert eine leere Zeichenfolge ist, wird das element wieder auf ein Textfeld mit dem Wert "Passwort".
Oder fügen Sie label-Wert-Passwort, platzieren Sie es hinter Eingang mit absoluter Positionierung, input background transparent und erstellen toggle-Funktion, die ausgelöst wird, onfocus und onblur. Das ist, wie ich es Tat.