Jak zablokować wpisywanie znaków specjalnych w polu wejściowym za pomocą jQuery?
jquery
special-characters
alphanumeric
Nerd Stalker
źródło
źródło
Odpowiedzi:
Prosty przykład z użyciem wyrażenia regularnego, które możesz zmienić, aby zezwolić / zabronić wszystkiego, co chcesz.
źródło
Szukałem odpowiedzi, która ograniczyłaby wprowadzanie tylko do znaków alfanumerycznych, ale nadal pozwalała na użycie znaków sterujących (np. Backspace, usuń, tabulator) oraz kopiuj + wklej. Żadna z udzielonych odpowiedzi, które wypróbowałem, nie spełniała wszystkich tych wymagań, więc wymyśliłem następujące, używając
input
zdarzenia.Edycja:
Jak wskazał rinogo w komentarzach, powyższy fragment kodu wymusza przesunięcie kursora do końca wprowadzania podczas wpisywania w środku tekstu wejściowego. Uważam, że poniższy fragment kodu rozwiązuje ten problem.
źródło
event.which
anievent.keycode
! Chciałbym móc +10!Krótka odpowiedź: zapobiegaj zdarzeniu „naciśnięcie klawisza”:
Długa odpowiedź: użyj wtyczki takiej jak jquery.alphanum
Wybierając rozwiązanie, należy wziąć pod uwagę kilka kwestii:
Myślę, że ten obszar jest na tyle złożony, że wymaga użycia wtyczki innej firmy. Wypróbowałem kilka dostępnych wtyczek, ale z każdą z nich napotkałem pewne problemy, więc napisałem jquery.alphanum . Kod wygląda następująco:
Aby uzyskać bardziej precyzyjną kontrolę, dodaj kilka ustawień:
Mam nadzieję, że to pomoże.
źródło
allow
ustawieniu. Ale to jest piękno wtyczek jquery, fakt, że możesz je modyfikować do swoich potrzeb. Dzięki!allow
opcji i działało dobrze, używając tego kodu: Czy jest$('#firstName').alphanum({allow: "/"});
szansa, że mógłbyś podać więcej informacji? Jeśli wystąpi błąd lub problem z dokumentacją, byłoby miło go naprawić. PozdrawiamallowOtherCharSets: false
iallowCaseless: false
. Te zakłócały ustawienia wprowadzone wallow
. Z mojego punktu widzenia uważam, żeallow
opcja ta powinna wykluczać wszystkie inne opcje (takie jakallowOtherCharSets
luballowCaseless
). Jeśli więc określisz znak wallow
opcji, powinien on być dozwolony niezależnie od innych opcji ustawionych w obiekcie konfiguracyjnym. To samo dotyczydisallow
. Ale to tylko moja opinia. :) Zdrówko! :)allow
idisallow
mają wyższy priorytet. Zalogowano się w numerze 7 . Mam nadzieję, że to pomożeUżyj atrybutu wejściowego wzorca HTML5!
źródło
Twoje pole tekstowe:
Twój javascript:
źródło
Użyj wyrażenia regularnego, aby zezwolić / zabronić czegokolwiek. Ponadto, w przypadku nieco bardziej niezawodnej wersji niż zaakceptowana odpowiedź, zezwolenie na znaki, które nie mają skojarzonej z nimi wartości kluczowej (backspace, tab, klawisze strzałek, delete itp.) Można wykonać, przechodząc najpierw przez zdarzenie keypress i sprawdź klucz na podstawie kodu klucza zamiast wartości.
źródło
Spójrz na wtyczkę alfanumeryczną jQuery. https://github.com/KevinSheedy/jquery.alphanum
źródło
Napisz kod javascript na zdarzenie onkeypress pola tekstowego. zgodnie z wymaganiami zezwalaj i ograniczaj znaki w polu tekstowym
źródło
Używam tego kodu modyfikując inne, które widziałem. Tylko wielkie dla użytkownika piszesz, jeśli naciśnięty klawisz lub wklejony tekst przejdzie test wzoru (dopasowanie) (w tym przykładzie jest wprowadzanie tekstu, które dopuszcza tylko 8 cyfr)
źródło
!e.charCode ? e.which : e.charCode
i nie po prostue.charCode ? e.charCode : e.which
?to jest przykład, który uniemożliwia użytkownikowi wpisanie znaku „a”
kluczowe kody odniesienia tutaj:
http://www.expandinghead.net/keycode.html
źródło
źródło
Tak, możesz to zrobić używając jQuery jako:
a skrypt dla twojego user_availability.php będzie:
Próbowałem dodać dla / i \, ale nie udało się.
Możesz to również zrobić za pomocą javascript, a kod będzie:
źródło
same liczby:
lub na czas zawierający „:”
w tym także delete i backspace:
niestety nie działa na iMACu
źródło
Chciał skomentować komentarz Alexa do odpowiedzi Dale'a. Niemożliwe (najpierw potrzebujesz, ile „powtórzeń”? To nie nastąpi bardzo szybko… dziwny system). Więc jako odpowiedź:
Backspace można dodać, dodając \ b do definicji wyrażenia regularnego w następujący sposób: [a-zA-Z0-9 \ b]. Lub po prostu zezwalasz na cały zakres alfabetu łacińskiego, w tym mniej więcej wszystkie znaki „nieegzotyczne” (także kontroluj znaki, takie jak backspace): ^ [\ u0000- \ u024F \ u20AC] + $
Tylko prawdziwy znak Unicode poza łaciną jest znak euro (20ac), dodaj wszystko, czego potrzebujesz.
Aby obsłużyć również dane wejściowe wprowadzone za pomocą kopiowania i wklejania, po prostu połącz się ze zdarzeniem „zmień” i sprawdź tam również dane wejściowe - usuwając je lub usuwając / wyświetlając komunikat o błędzie typu „nieobsługiwane znaki”.
źródło
Ogranicz znaki specjalne po naciśnięciu klawisza. Oto strona testowa dla kluczowych kodów: http://www.asquare.net/javascript/tests/KeyCode.html
W Angular potrzebowałem odpowiedniego formatu waluty w moim polu tekstowym. Moje rozwiązanie:
W html dodaj dyrektywę
iw odpowiednim kontrolerze kątowym pozwalam tylko na 1 okres, konwertuj tekst na liczbę i dodaj zaokrąglanie liczb do `` rozmycia ''
źródło
Aby zamienić znaki specjalne, spacje i zamień na małe litery
źródło
źródło
Zezwalaj tylko na liczby w polu tekstowym (ogranicz alfabety i znaki specjalne)
źródło
źródło