Używam następującego atrybutu stylu, aby ustawić dane wejściowe użytkownika na wielkie litery, aby na przykład gdy użytkownik zaczął pisać w polu tekstowym railway
, powinien zostać zmieniony na wielkie litery, tak jak RAILWAY
użytkownik nie musi naciskać przycisku Caps-lock.
Oto kod, którego używam do wprowadzania danych:
<input type = "text" class = "normal" name = "Name" size = "20" maxlength = "20"> <img src="../images/tickmark.gif" border="0" style='text-transform:uppercase'/>
Ale nie uzyskuję pożądanego wyniku przy użyciu tego atrybutu.
Odpowiedzi:
Umieściłeś
style
atrybut na<img>
tagu, zamiast<input>
.Nie jest również dobrym pomysłem umieszczanie spacji między nazwą atrybutu a wartością ...
Należy pamiętać, że ta transformacja jest czysto wizualna i nie zmienia tekstu wysyłanego w POST.
źródło
Myślę, że najbardziej niezawodnym rozwiązaniem, które zapewni, że będzie pisane wielkimi literami, jest użycie wbudowanej metody oninput, takiej jak:
EDYTOWAĆ
Niektórzy narzekali, że kursor przeskakuje do końca podczas edycji wartości, więc ta nieco rozszerzona wersja powinna rozwiązać ten problem
źródło
Odpowiedzi ze
text-transformation:uppercase
stylizacją nie będą wysyłały danych z wielkimi literami do serwera po przesłaniu - czego można się spodziewać. Zamiast tego możesz zrobić coś takiego:Do wprowadzania kodu HTML użyj onkeydown:
W Twoim JavaScript:
Z
upperCaseF()
funkcją na każdym naciśnięciu klawisza, wartość na wejściu zamieni się w wielką literę.Dodałem również opóźnienie 1 ms, aby blok kodu funkcji wyzwalał się po wystąpieniu zdarzenia keydown.
źródło
input
imprezę zamiastkeydown
i pozbyć sięsetTimeout
obejść.input
elementu wydaje się działać dobrze:oninput="this.value = this.value.toUpperCase()"
text-transform:uppercase
powyższego rozwiązania w stylu CSS, aby dane wejściowe były zawsze wyświetlane jako wielkie literyProblem z pierwszą odpowiedzią polega na tym, że symbol zastępczy również będzie pisany dużymi literami. W przypadku, gdy chcesz, aby TYLKO wpisane były wielkie litery, użyj następującego rozwiązania.
Aby zaznaczyć tylko niepusty element wejściowy, umieść wymagany atrybut na elemencie:
Teraz, aby go zaznaczyć, użyj
:valid
pseudoelementu:W ten sposób wielkie litery wprowadzisz tylko do wprowadzonych znaków.
źródło
próbować
Zamiast obrazu umieść znacznik stylu na wejściu, ponieważ piszesz na wejściu, a nie na obrazie
źródło
Ustaw następujący styl, aby ustawić wszystkie pola tekstowe na wielkie litery
źródło
Problem ze stylami CSS polega na tym, że nie zmienia danych, a jeśli nie chcesz mieć funkcji JS, spróbuj ...
<input onkeyup="this.value = this.value.toUpperCase()" />
Samo zobaczysz, że pole jest wielkie po wpisaniu klucza, więc może być pożądane połączenie tego z
style='text-transform:uppercase'
innymi sugerowanymi.źródło
Używanie CSS
text-transform: uppercase
nie zmienia rzeczywistego wejścia, a jedynie zmienia jego wygląd. Jeśli wyślesz dane wejściowe na serwer, nadal będą one pisane małymi literami lub w sposób, w jaki je wprowadziłeś. Aby faktycznie przekształcić wartość wejściową, musisz dodać kod javascript, jak poniżej:Tutaj używam
toLocaleUpperCase()
do konwersjiinput
wartości na wielkie litery. Działa dobrze, dopóki nie będziesz musiał edytować tego, co wpisałeś, np. Jeśli wprowadziłeś ABCXYZ i teraz spróbujesz zmienić to na ABCLMNXYZ, stanie się ABCLXYZMN, ponieważ po każdym wprowadzeniu kursor przeskakuje do końca.Aby przezwyciężyć to przeskakiwanie kursora, musimy wprowadzić następujące zmiany w naszej funkcji:
Teraz wszystko działa zgodnie z oczekiwaniami, ale jeśli masz wolny komputer, możesz zobaczyć tekst przeskakujący z małych na wielkie podczas pisania. Jeśli to cię denerwuje, to jest czas na użycie CSS, zastosowanie
input: {text-transform: uppercase;}
do pliku CSS i wszystko będzie dobrze.źródło
Spowoduje to wyświetlenie danych wejściowych wielkimi literami i wysłanie danych wejściowych pocztą wielkimi literami.
HTML
JavaScript
źródło
Jak nikt tego nie sugerował:
Jeśli chcesz używać rozwiązania CSS z symbolami zastępczymi małymi literami, wystarczy osobno nadać styl tym symbolom zastępczym. Podziel 2 style zastępcze, aby zapewnić zgodność z IE.
źródło
Wypróbuj poniższe rozwiązanie. Spowoduje to również zachowanie ostrożności, gdy użytkownik wprowadzi tylko puste miejsce w polu wejściowym przy pierwszym indeksie.
źródło
źródło