2012-07-20 9 views

Odpowiedz

21

To jest known bug w domyślnej przeglądarce Android Webkit. Jak na this QuirksMode page widać, że wiele wersji Androida cierpi z tego powodu. Z drugiej strony Chrome na Androida nie.

Dla tego stworzyłem prostą korektę JavaScript. Najpierw przeczytaj to pytanie How to display placeholder's text in HTML5's number-typed input, jeśli nadal chcesz użyć takiego zastępczego obiektu, złóż zamówienie my solution gist.

TL; DR;

Pozostaw swoją adnotację, jak można się spodziewać;

<input type="number" placeholder="Enter some numbers" /> 

Następnie uruchom jeden z tych skryptów po załadowaniu strony;

// jQuery version 
$("input[type='number']").each(function(i, el) { 
    el.type = "text"; 
    el.onfocus = function(){this.type="number";}; 
    el.onblur = function(){this.type="text";}; 
}); 

// Stand-alone version 
(function(){ var elms = document.querySelectorAll("input"), i=elms.length; 
    while(i--) { 
     var el=elms[i]; if(el.type=="number"]) 
      el.type="text", 
      el.onfocus = function(){this.type="number";}, 
      el.onblur = function(){this.type="text";}; 
    } 
})(); 
+0

Dzięki aaronsnoswell :) – Shinoj

+1

Pod Jellybean rozwiązanie to działa tylko przez pewien czas, co prowadzi do braku klawiatur w odpowiedzi na dotknięcie użytkownika. Uruchomienie tego kodu w trybie przechwytywania zdawało się łagodzić wiele z tych problemów. –

+0

@KevinDecker Dzięki za testowanie - czy możesz wyjaśnić, co masz na myśli, mówiąc o trybie przechwytywania? – aaronsnoswell

11

Korzystając type = „tel«zamiast type = «number» symbol zastępczy jest wyświetlany i klawiatura numeryczna jest otwarty na ostrości.

+2

Tel będzie działać tylko dla US, ale nie jest odpowiedni dla międzynarodowych kodów pocztowych, które wymagają alhpa-znaków numerycznych. – TaeKwonJoe

+0

Czy to nie jest tylko obejście? – ViniciusPires

+0

W specyficznym kontekście tego pytania @TaeKwonJoe ma rację. Generalnie jednak jest to najlepsze rozwiązanie dla tytułu pytania: "Tekst zastępczy dla typu wejściowego =" liczba "nie jest wyświetlany w pakiecie Webkit". W końcu tytuł nie określa, że ​​problem jest związany z kodem zip. –

0

miałem ten sam problem i mój roztwór ustawienie» wpisz "pole jako tekst." Myślę, że dzieje się tak z powodu właściwości type. Tekst zastępczy nie jest liczbą! Jeśli musisz wymusić na użytkowniku używanie tylko formatu liczb, możesz użyć wtyczek javascript dla tego i zrobiłem to w ten sposób:)

-1

spróbuj tego:

<input type="text" pattern="[0-9]" id="zip-code" placeholder="Zip code"> 
+3

Proszę nie używać * spróbuj tego * jako odpowiedzi. wyjaśnij, co zrobiłeś i dlaczego. – Jens

Powiązane problemy