2012-07-20 15 views

risposta

21

È un known bug nel browser Webkit Android predefinito. Come da this QuirksMode page, puoi vedere che molte versioni di Android ne soffrono. D'altra parte, Chrome per Android non lo fa.

Ho creato un semplice shim JavaScript (correzione) per questo. Per prima cosa, leggi questa domanda How to display placeholder's text in HTML5's number-typed input, quindi se vuoi ancora usare un segnaposto come quello, prova my solution gist.

TL; DR;

Lascia il tuo margine come ti aspetteresti;

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

Quindi eseguire uno di questi script dopo il caricamento della pagina;

// 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

Grazie aaronsnoswell :) – Shinoj

+1

Sotto Jellybean questa soluzione funziona solo in parte il tempo, portando a mancare le tastiere in risposta al tocco dell'utente. L'esecuzione di questo codice in modalità di acquisizione sembrava attenuare un sacco di questi problemi. –

+0

@KevinDecker Grazie per averlo testato: puoi spiegare cosa intendi per modalità di acquisizione? – aaronsnoswell

11

Utilizzando type = "tel 'al posto di type = 'numero' viene visualizzato il segnaposto e la tastiera numerica si apre sul fuoco.

+2

Tel funzionerebbe solo per gli Stati Uniti ma non è appropriato per i codici postali internazionali che richiedono caratteri alfanumerici. – TaeKwonJoe

+0

Non è solo una soluzione? – ViniciusPires

+0

Nel contesto specifico di questa domanda, @TaeKwonJoe ha ragione. Ma in generale, questa è di gran lunga la migliore soluzione per il titolo della domanda: "Testo segnaposto per un tipo di input =" numero "non mostrato nel webkit". Dopotutto, il titolo non specifica il problema relativo al 'codice-zip '. –

0

Ho avuto lo stesso problema e la mia soluzione è stata l'impostazione' digita "campo come testo. Penso che accada a causa della proprietà type." Il tuo testo segnaposto non è un numero! Se devi forzare l'utente ad usare solo il formato numerico, puoi usare i plugin javascript per questo e l'ho fatto così:)

-1

provare questo:

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

Si prega di non utilizzare * provare questo * come risposta. spiega cosa hai fatto e perché. – Jens

Problemi correlati