2

I was wondering if anyone knew if it were possible to override the default behaviour of browsers that support the new HTML input types such as type="email" and type="date"?

I appreciate that I could test if a browser supports an input type and provide a fallback for those browsers that don't, but what I want to know is is there any way to prevent that default behaviour from happening in browsers that do support it?

For instance, if in Opera I want to use the date input type, but I don't want Opera to display the native datepicker (i.e. I want to replace it with my own custom one) is that possible? Are there any DOM events triggered like onDatePickerShow that one can hook into?

I don't believe that this is possible, but if anyone knows for sure one way or the other I would love to hear from you.

Mark Perkins
  • 260
  • 2
  • 10
  • maybe ask on http://lists.w3.org/Archives/Public/public-html ? On the other hand, can you override the default behavior for HTML4 input types (e.g. type=file)? – Nickolay Nov 13 '09 at 07:28
  • Yeah I might well try the mailing list... and good point about the HTML 4 input types - I'm guessing that the answer is going to be no. – Mark Perkins Nov 13 '09 at 22:54

2 Answers2

0

input type=date without datepicker is almost the same as input type=text. If you want to keep validation, then you might use pattern attribute instead.

There's no way to customize look'n'feel of the standard date picker. There are no events for the picker. Spec doesn't define any UI for pickers. Consider how wildly different pickers can be – compare one you get on desktop with picker on the iPhone.

In the future CSS might get pseudo-classes for some customizations of date picker (and file picker), but currently it's all-or-nothing.

Kornel
  • 97,764
  • 37
  • 219
  • 309
0

Disable validation of HTML5 form elements

If you add a novalidate attribute, then for example you can enter an email without an @

This only seems to disable the client side HTML5 validation.

Community
  • 1
  • 1
wcndave
  • 306
  • 2
  • 12