2011-12-08 15 views
8

Ho un problema, ma non sono sicuro se si tratta di qualcosa che sto facendo male, o se questa funzione non è ancora supportata.Campo data HTML e testo segnaposto in Safari

Fondamentalmente ho le seguenti righe di codice:

<input type="text" name="lastname" id="lastname" value="" placeholder="Last name" /> 

<input type="date" name="dob" id="dob" value="" placeholder="Date of birth" /> 

Ho provato questo sulla versione desktop di Safari e ogni bene, ma quando prova sul iPad, il secondo ingresso non lo fa mostra il testo segnaposto. Qualcuno sa se il testo segnaposto è supportato su type = "date" su iPad?

Acclamazioni Nick

risposta

7

L'iPad sta facendo la cosa giusta. L'attributo placeholderisn't supported on input elements on type date. Probabilmente sta lavorando su Safari desktop perché non supporta il tipo date, quindi quell'attributo viene ignorato e ti rimane un campo di testo normale. Puoi controllare l'ispettore DOM.

+2

Cin cin. Grazie anche per il link a una grande risorsa! Aggiunto ai preferiti per un uso successivo. Devo dire che questo sembra un po 'strano che tu possa avere un testo segnaposto su alcuni campi di testo, ma non su altri. Cosa succede se volevo aggiungere il formato come segnaposto per esempio - 'gg/mm/aa'? – Sniffer

+0

Ma questo è il punto, un input di data non dovrebbe essere un campo di testo. – robertc

+0

Semantica. Si tratta di un campo di input quindi, che su un iPad anziché su una normale tastiera messa a fuoco attiva una selezione di datepicker. – Sniffer

4

po 'leggero mod qui va ...

hanno Inizialmente il campo come un campo di testo. Quando l'utente si concentra sul campo, i campi digitano il tipo di data e ri-focus.

testate in iOS6

HTML

<input type="text" placeholder="DOB" id="dob" /> 

JS

<script> 

    var textbox = document.getElementById('dob') 
     textbox.onfocus = function (event) { 
      this.type = 'date'; 
      this.focus(); 
    } 

</script> 
3

Utilizzando la soluzione di sidarcy:

<input type="date" name="dob" id="dob" value="" 
    placeholder="Date of birth" 
    onfocus="this.type='date';this.focus();" 
    onblur="if(this.value == '') this.type='text';"/> 
1

CSS per iOS Safari:

input[type='date']:after { 
    color: #aaa; 
    content: attr(placeholder); 
} 

Quindi utilizzare segnaposto su input Data:

<input name="mydate" type="date" value="" placeholder="Select a date" /> 
+0

Mentre funziona, il segnaposto rimane anche dopo aver selezionato un valore (almeno lo fa per i tipi 'time') – sMyles

Problemi correlati