Mam formularz wprowadzania numeru karty kredytowej, który będzie używany zarówno przez przeglądarki mobilne, jak i inne.Przyjazne dla urządzeń mobilnych wprowadzanie ciągu cyfr i spacji (numeru karty kredytowej)
Chcę wskazać, że klawiatura powinna pojawiać się na urządzeniu mobilnym i zezwalać na (opcjonalne) spacje, dlatego należy zaakceptować "4111 1234 1234 1234" lub "4111123412341234".
Z tego co znalazłem, opcje są:
a) <input type="tel"/>
- to wydaje się zachowywać jak chcę (z obecnych przeglądarek mobilnych przynajmniej), ale semantycznie niewłaściwy.
b) <input type="text" pattern="[\d ]*"/>
lub podobnie - iPhone recognises some patterns ([0-9]*
, \d*
), jak pracować z klawiatury, ale to nie działa tak dobrze na Androida. Nie jestem też pewna, czy istnieją jakieś wzorce, które iPhone da numpadowi dla tych dozwolonych przestrzeni, ale nie mam iPhone'a na rękę, by sprawdzić teraz.
c) Próba wykrycia przeglądarki przy użyciu Javascript i użycia (a) w przypadku urządzeń mobilnych i (b) w przypadku urządzeń innych niż mobilne. Cludgy, i nie ma prawdziwej korzyści ponad (a).
<input type="number"/>
wydaje się być nierozrusznikiem od Chrome at least will force such input to a number, w związku z czym przerywa wprowadzanie za pomocą spacji.
Czy istnieje lepszy sposób na podpowiedzi do przeglądarek mobilnych, które powinny oferować klawiaturę numeryczną niż przy użyciu type="tel"
?
Edit:
Może nieruchomość -webkit-*
, które mogą być stosowane do normalnego pola wprowadzania tekstu do zrozumienia, że KN należy zamieścić?
Bah, właśnie znalazłem duplikat: [numer wejściowy HTML5 vs tel] (http://stackoverflow.com/questions/8216278/html5-input-type-number-vs-tel) –