2013-06-10 14 views
7

Mam dane tekstowe (lub edytowalne DIV), które zawsze chcę zacząć od domyślnego tekstu ORAZ nie mogą być edytowane przez użytkownika. Tak więc na przykład:Wymuś wejście tekstowe, aby rozpocząć od domyślnego tekstu

Ramka zawsze zaczynają się od wartości domyślnej: My name is

użytkownicy będą w stanie i wymagał, aby dodać swoją nazwę, takie jak: My name is David

Oni nie będzie w stanie usunąć My name is domyślny tekst. Najlepiej byłoby, gdyby użytkownik kliknął w dowolnym miejscu tego domyślnego tekstu, kursor przeskoczyłby na koniec tego tekstu, więc nie mieliby oni szansy nawet na wpisanie czegoś, z wyjątkiem domyślnego. To samo dotyczy backspace, domyślny tekst (My name is) nie może zostać usunięty.

Wszelkie sugestie? Mam możliwość korzystania z JavaScript/Jquery.

+7

Zobacz ten http://stackoverflow.com/qu estions/5490410/html-javascript-how-to-make-default-text-of-a-textarea-undeletable – lifetimes

+0

Czy istnieje szansa, że ​​atrybut zastępczy może rozwiązać Twój problem? – Rikon

Odpowiedz

0

Po prostu przyklej etykietę (tj. Przęsło) tuż obok obszaru tekstowego i nadaj jej styl, aby wyglądał jak jeden obszar tekstowy. Po prostu ustaw je w linii i ustaw obraz tła (lub ramki css) za obydwoma, używając css, aby utworzyć wygląd obszaru tekstowego. Następnie obróć normalne ramki poza obszar tekstowy również za pomocą css. Powinien być dość łatwy do kodowania. Tricky part jest po prostu poprawnie napisany. Jeśli nie przeszkadza tekst jest na innej linii można zrobić (z innego wątku):

http://jsfiddle.net/eAW2U/

Albo jeśli chcesz je na tej samej linii (która będzie działać tylko na polu tekstowym naprawdę, nie textarea, można unosić im

<div style="float:left">etc... 

Lub alternatywnie można użyć zdarzenia przyciśnięcie/keyUp sprawdzić i zobaczyć, czy naciśnięcie skończy się zmienia początek całego tekstu, a jeśli tak, to anulować.

Powiązane problemy