Ik wil een input type=text laten werken als een input type=date. Als een input date niet wordt ondersteund, gebruikt de browser een input type=text, maar het gedrag van die twee verschilt.
De spec voor een input type=date is als volgt:
- De weergegeven date (value) moet zoals de locale (lang attribute)
- Als je de value ophaalt (obj.value) moet de value in ISO 8601 (YYYY-MM-DD)
- Als je de value set moet dit in ISO 8601
- De POST of GET value moet in ISO 8601
Stel ik heb deze HTML met de nl-NL locale:
Ik kan getters en setters overschrijven met Object.defineProperty in Javascript, maar dan werkt de input niet goed meer wanneer je bijvoorbeeld de value zelf in de input intypt.
Iemand een oplossing die bovenstaand gedrag oplevert? Ik wil met deze functionaliteit verschillende browsers (die wel of niet input type=date ondersteunen) hetzelfde gedrag laten vertonen.
De spec voor een input type=date is als volgt:
- De weergegeven date (value) moet zoals de locale (lang attribute)
- Als je de value ophaalt (obj.value) moet de value in ISO 8601 (YYYY-MM-DD)
- Als je de value set moet dit in ISO 8601
- De POST of GET value moet in ISO 8601
Stel ik heb deze HTML met de nl-NL locale:
HTML:
Dit moet weergegeven worden als "7-11-2012". 1
| <input lang="nl-NL" value="2012-11-07"> |
Ik kan getters en setters overschrijven met Object.defineProperty in Javascript, maar dan werkt de input niet goed meer wanneer je bijvoorbeeld de value zelf in de input intypt.
HTML:
Moet weergegeven worden als 7-11-2012.1
| <input id="date" lang="nl-NL" value="2012-11-07"> |
JavaScript:
Moet 2012-11-07 returnen.1
| document.getElementById('date').value |
JavaScript:
Moet opnieuw 7-11-2012 weergeven in de input.1
| document.getElementById('date').value = '2012-11-07' |
Iemand een oplossing die bovenstaand gedrag oplevert? Ik wil met deze functionaliteit verschillende browsers (die wel of niet input type=date ondersteunen) hetzelfde gedrag laten vertonen.