2013-05-14 15 views
5

Próbuję atrybut pattern po raz pierwszy i nie mogę go uruchomić (moja przeglądarka go obsługuje).HTML Pattern - regex nie działa

Teraz mam:

input type="text" pattern="[a-zA-Z0-9]{6}" name="formName" 

Pierwszym problemem jest to, że nie powiadom mnie czy to puste; Drugi problem polega na tym, że jeśli coś wpiszesz, nie zaakceptuje go. Chcę, żeby akceptował znaki alfanumeryczne i miał długość dokładnie 6 znaków. Próbowałem go z ukośnikami i kilkoma innymi odmianami.

+2

Proszę podać pasujące i nie pasujące przykłady wejść. – sp00m

+0

Można użyć: wymagane = "required" [Regex info] [1] [1]: http://stackoverflow.com/a/16453203/1063823 – Duikboot

+0

Za co obecnie istnieje, nic nie działa oprócz wartości null (którą odkryłem). Co powinno działać: FRA4H6, FRATHJ, 006311. –

Odpowiedz

2

działa na mnie tutaj: http://jsfiddle.net/barbuslex/nR6yg/

<form> 
    <input type="text" pattern="[a-zA-Z0-9]{6}" name="formName" /> 
    <input type="submit" value="OK" /> 
</form> 

używam Google Chrome

+0

Nie odnosi się to do pierwszego problemu OP "Pierwszy problem polega na tym, że nie informuje mnie, czy jest pusty". – gkalpak

+2

Korzystanie z najnowszej wersji przeglądarki Chrome po prostu NIE działa.Czy jest to przestarzałe? – iGanja

+1

nie zapobiega wprowadzeniu błędnych danych, ale uniemożliwia przesłanie formularza. –

6

Jak Duikboot już wspomniano, we właściwy sposób, aby to zrobić jest:

<input type="text" name="formField" pattern="[a-zA-Z0-9]{6}" required> 

required przypisują przyczyny sprawdzanie poprawności, aby zakończyć się niepowodzeniem, gdy pole jest puste.
Atrybut pattern definiuje wyrażenie regularne do przetestowania, gdy pole nie jest puste.
(Twój początkowy wzór wydaje się działać prawidłowo.)

Więcej informacji można znaleźć here.
Jest to na tyle proste, aby nie wymagać demo, ale mimo to można je znaleźć: here.

+4

@downvoter: Rozważ pozostawienie komentarza i pomóż poprawić odpowiedź :) – gkalpak

+1

Hej, to nie działa dla mnie ... '' –

+0

@MartinBarker, działa dla mnie ... – gkalpak

0

Spróbuj kod jego pracy doskonale

<html> 
<body>  
<form action="demo_form.asp"> 
    Country code: <input type="text" name="country_code" pattern="[A-Za-z]{3}" title="Three letter country code"> 
    <input type="submit"> 
</form>  
</body> 
</html> 

Wpisz nieprawidłowy kod kraju i kliknij przycisk Prześlij. Następnie możesz otrzymać wiadomość (title = "Trzyliterowy kod kraju")

+2

http: //www.w3schools. com/tags/att_input_pattern.asp Rozumiem, że HTML: P – McBurgerKong

0

Po prostu musisz dodać do tagu wymagany atrybut, który powiadomi użytkownika, jeśli spróbuje wysłać formularz z tym właśnie pustym polem.

<input type="text" pattern="[a-zA-z0-9]{6}" name="formName" required>