Placeholder attribute not working on input type "date"


I noticed that the placeholder text does not show up when I set the input type to date. Is this a bug?

      <label class="item item-input">
        <input type="date" placeholder="When?" ng-model="invite.when">


It’s an AngularJS thing :


This helped me, it is not clean but it did the job:

<input placeholder="Date" class="textbox-n" type="text" onfocus="(this.type='date')"  id="date">



This doesn’t trigger when clicking “done” on the previous field. When switching to the next (date) field, it still thinks it’s a text field. Is there a way to fix that?


Does it work correctly when you open it from nothing? So not from within the previous field, but from a normal page content?

EDIT: reason why I’m asking is becasue date fields are not supported on all browsers and platforms. Refer to to notice the very limited support.


For me, on ios7 iphone it doesn’t work when starting from nothing. It shows the placeholder, but when clicking it to change the type to date, it jumps to the next element in my form in stead of showing the calendar…

It only works when trying to click on the element a second or third time.


i think the placeholder for date attributes has to be a date string also, for somebody could help, i did it like this:

  <label class="item item-input">
       <span class="input-label" ng-if="!user.birthdate" style="color: #aaa;">Birth Date</span> 
            <input type="date" ng-model="user.birthdate">


Thanks for that! :grin: