Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript]stala wartosc pola tekstowego
Forum PHP.pl > Forum > Przedszkole
tog
witam,

jak moge zrobic cos takiego:

user wchodzi na strone gdzie jest pole na maila
w polu od razu jest wartosc '@gmail.com', user wpisuje aby login
ale...
gdy user kliknie na pole to klawiatura zostaje ustawiona na poczatek, czyli tam gdzie ma sie znajdowac login i nie mozna skasowac podstawowej wartosci, czyli '@gmail.com'
Armstrong
http://www.kurshtml.boo.pl/html/input,html.html
tog
nadal nie wiem jak to zrobic
Pawel_W
najprościej byłoby podpiąć funkcje pod onkeyup w inpucie, a w funkcji sprawdzać czy wartość zawiera @gmail.com, jeżeli nie to dokleić, jeżeli tak to zostawić winksmiley.jpg
230005
Można tak jak mówią przedmówcy, albo tak:

  1.  
  2. <input type="text" id="mail" name="mail" /><label for="mail">@gmail.com</label>
  3.  


Wtedy część maila na której ci zależy będzie nie do skasowania smile.gif.
vokiel
Tylko po co takie podchody. Skoro użytkownik nie może zmienić, usunąć tego @gmail.com, to możesz to podać na stałe zwykłym tekstem za inputem. Tak że będziesz miał:
Kod
+----------+
|          |@gmail.com
+----------+
Pawel_W
Cytat(vokiel @ 1.01.2010, 18:33:43 ) *
Tylko po co takie podchody. Skoro użytkownik nie może zmienić, usunąć tego @gmail.com, to możesz to podać na stałe zwykłym tekstem za inputem. Tak że będziesz miał:
Kod
+----------+
|          |@gmail.com
+----------+

+ można wrzucić to @gmail.com w diva i ustawić mu style takie jak ma input smile.gif
tog
zeby ladnei wygladalo winksmiley.jpg

nie da sie tego zrobic w input ?
mozna byloby pokombinowac z szerokosciami diva za inputem i inputu
tak aby razem towrzyly np. 200px;
ale szerokosc inputu byla zalezna od ilosci tekstu ktora sie w nim znajduje
tak aby napis @gmail.com podazal za tekstem w polu
czy da sie prosciej ?
antyqjon
Cytat(tog @ 1.01.2010, 19:10:37 ) *
czy da sie prosciej ?

Metodą leniwego designera - wyrównać treść inputa do prawej winksmiley.jpg
Crozin
Do zdarzenia focus dla tego inputa podpinasz funkcję ustawiającą kursor na początku... a taką funkcję powinieneś znaleźć tutaj: http://www.google.pl/search?hl=pl&lr=&...ion&spell=1
230005
@vokiel - to właśnie napisałem nad twoim postem smile.gif

@tog - jeśli chcesz koniecznie, żeby gmail był w polu input, to np. zapamiętujesz to w zmiennej, a przy onKeyDown dajesz "obecna wartość" + zmienna - przy każdym naciśnięciu klawisza będziesz jednak musiał odczytywać wartość i jeśli jest w niej @gmail.com, to bez dodawania kolejny raz. To rozwiązanie ma jednak wady, bo przecież zawsze ktoś może ustawić kursor za gmail.com (złośnicy smile.gif) - w takim wypadku proponowałbym to co zdanie wcześniej, ale z wycinaniem @gmail.com z ciągu i dodawaniem go na końcu. Do tego wszystkiego jeszcze procedura onChange - w niej sprawdzasz, czy żądany tekst jest w polu, jeśli nie to go dodajesz. Trzeba też sprawdzić, czy ktoś sobie tam nie wpisał np @wp.pl i w razie konieczności usunąć. Tylko po co takie kombinacje, skoro możesz zrobić tak jak parę postów wyżej napisałem i tylko ładnie to ostylować biggrin.gif?
tog
szczerze mowiac to nawet nie robie teraz takiego formularza
tylko przyszedl mi go glowy pomysl na takie efektowne pole i postanowilem je wykonac biggrin.gif (w planach mam jeszcze wysiwyg)
rozwiazaniem co prawda jest to co pisalem wczesniej
ale to duzo kombinowania i nie wiem na ile byloby to plynne
dodanie @gmail.com na koncu nei stanowi problemu, natomiast zablokowanie kasacji tej frazy juz tak
darko
Cytat
dodanie @gmail.com na koncu nei stanowi problemu, natomiast zablokowanie kasacji tej frazy juz tak

Może coś takiego (z palca bez sprawdzenia): Sprawdzone, ale nie działa jak trzeba
  1. <input id="email" value="@gmail.com" onkeydown="preventFromGmailDeletion()" />
  2. function preventFromGmailDeletion() {
  3. var d = document.getElementById('email');
  4. if (d.value.indexOf("@gmail.com") < 0) {
  5. d.value = d.value + '@gmail.com';
  6. }
  7. }
tog
to chyba nie to, ale zaraz sprawdze jak dziala kod
moze zle go przeczytalem
PS: to na pewno nie to tongue.gif

hm... a moze gdybym robil sprawdzenie czy w polu jest @gmail.com po kazdej akcji klawiatury w polu input
co prawda user moglby skasowac zawartosc, ale zaraz byloby to poprawiane... mniej efektowne, ale sprobuje
darko
Cytat(tog @ 2.01.2010, 03:22:28 ) *
to chyba nie to, ale zaraz sprawdze jak dziala kod
moze zle go przeczytalem
PS: to na pewno nie to tongue.gif

hm... a moze gdybym robil sprawdzenie czy w polu jest @gmail.com po kazdej akcji klawiatury w polu input
co prawda user moglby skasowac zawartosc, ale zaraz byloby to poprawiane... mniej efektowne, ale sprobuje

To powyżej miało dokładnie tak działać, niestety działa nieco inaczej
tog
ustawiles onkeydown, takze nei moglo tak dzialac tongue.gif

nie wazne
onkeydown jednak dziala inaczej niz mi sie wydawalo

  1.  
  2. <input type="text" name="mail" id="mail" onkeydown="ValidateMailForGmail()">
  3.  
  4.  
  5. function ValidateMailForGmail()
  6. {
  7.  
  8. var mail
  9. mail = document.getElementById('mail').value
  10. if(!mail.search('@gmail.com'))
  11. {
  12. mail.replace('@'.*?, '')
  13. mail = mail.'@gmail.com'
  14. document.getElementById('mail').value = mail
  15. }
  16.  
  17. }
  18.  
  19.  


podejrzewam, ze nei dziala i narobilem mase bledow
ale ide spac ;]

jednak sprawdzialem biggrin.gif
nie dziala, ale to juz nie dzisiaj

w kazdym razie moze teraz udalo mi sie naswietlic problem biggrin.gif
230005
Cytat
dodanie @gmail.com na koncu nei stanowi problemu, natomiast zablokowanie kasacji tej frazy juz tak


Czy przeczytałeś uważnie mój post? Bo jest tam opisany sposób jak to zrobić.
Pawel_W
jak chcecie to zrobić, to raczej podepnijcie pod onkeyup a nie onkeydown winksmiley.jpg

i tak btw to przydałoby się zabezpieczyć, bo np. mamy kod

email@gmail.com

ktoś usunie np. "."

będzie

email@gmailcom

i skrypt to zamieni na

email@gmailcom@gmail.com

winksmiley.jpg

EDIT:
najprościej chyba będzie tak:
  1. function validate(t)
  2. {
  3. s = t.indexOf('@');
  4. if(s>-1)
  5. t = t.substring(0, s);
  6.  
  7. return t+'@gmail.com';
  8. }

  1. <input onkeyup="this.value = validate(this.value)" />


tylko że znowu nie zadziała jak ktoś usunie @ z inputa winksmiley.jpg
tog
230005, sory, ale jeszcze poleglem na zdarzeniach

no ok, moze nie tak efektownie jak mialo byc
ale lepiej sie chyab nei da

teraz tylko znalezc zastosowanie w jakims formularzu i cieszyc sie fajnym efektem biggrin.gif
-Darek-
a może po prostu tak?

  1. <input type="text" id="data" readonly>
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.