Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: zmiana typu inputa
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
go_lab
Witam!

Mam następujący problem:

Mam pole, trzeba wpisać login i hasło.
Chcę to rozwiązać w następujący sposób:
pole, w którym podaje się hasło domyślnie będzie miało wartość "wpisz hasło" czy "password" albo cośtam.
Chciałem zrobić tak, aby po kliknięciu na to pole można było wpisać hasło, ale aby pole zmieniło swoje atrybuty na zagwiazdkowane.

document.getElementById('pass').type='password'

nie działa, nie ma czegoś takiego.
Czy da się to wogóle zrobić?
wojtek.zielinski
Można to rozwiązać na dwa sposoby, choć nie wiem, czy słuszne.

1. Zrobić odpowiedni obrazek z napisem "wpisz hasło" i wstawić jako background-image, a na onfocus usunąć to tło.

2. Bardziej skomplikowane rozwiązanie - zrobić dwa pola - <input type="text" value="wpisz hasło" /> i <input type="password" />, drugie pole domyślnie niewidoczne. W pierwszym dać na onfocus zniknięcie tego pola i pojawienie się drugiego z jednoczesnym przeniesieniem focusa.
go_lab
Zmiana tła stronki nie stanowi problemu, ale poprzez różne analogie nie mogę dojść do zmiany tła pola formularza.
Jeśli ktoś zarzuci jeszcze odpowiednią komendą będe bardzo wdzięczny.
Reigon
Sprobuj:
var input = document.getElementById('pass');
input.setAttribute("type","password");

Przy tworzeniu inputa dziala, nie testowalem natomiast czy mozliwa jest taka modyfikacja
fan_pascala
W normalnych przeglądarkach to zadziała, ale w IE6 to się wysypie na linii :

  1. input.setAttribute("type","password");
mara.tonczyk
od siebie dodam takie cos:



  1. function zmien()
  2. {
  3. document.getElementById('haslo').innerHTML='<input type="password" name="polehasla" id="polehasla" />';
  4. setTimeout("document.getElementById('polehasla').focus()", 50);
  5. }
  6. <div id="haslo">
  7. <input tyle="text" value="dawaj haslo" onclick="zmien()" />
  8. </div>




settimeout z dedykacja dla IE ktory chyba dlugo tworzy inputa ze potem go nie widzi przy poleceniu focus
abc667
  1. <script type="text/javascript">
  2. function change()
  3. {
  4. document.forms['form'].elements['pole'].type = 'password'; //1
  5. document.getElementById('pole').type = 'password'; //2
  6. }
  7.  
  8.  
  9. <form name="form">
  10. <input type="text" name="pole" id="pole" value="wpisz hasło" onfocus="change();" />
  11.  
  12. </form>

obie formy działają
go_lab
Cytat(mara.tonczyk @ 19.06.2007, 12:04:56 ) *
settimeout z dedykacja dla IE ktory chyba dlugo tworzy inputa ze potem go nie widzi przy poleceniu focus


Nadal pojawia się "Nieznany błąd czasu wykonania."
A wcześniejsza propozycja sprawdza się w Mozilli, ale Explorer sie przy niej rozkłada
wojtek.zielinski
Cytat(go_lab @ 19.06.2007, 10:06:38 ) *
Zmiana tła stronki nie stanowi problemu, ale poprzez różne analogie nie mogę dojść do zmiany tła pola formularza.
Jeśli ktoś zarzuci jeszcze odpowiednią komendą będe bardzo wdzięczny.



  1. <input type="password" id="passField" ... />
  2.  
  3. <script type="text/javascript">
  4. function ChangeBg()
  5. {
  6. document.getElementById('passField').style.backgroundImage = 'sciezka/plik.jpg';
  7. }
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.