#5667 closed bug (fixed)
serialize / serializeArray ignores HTML 5 input types
Reported by: | skyfex | Owned by: | |
---|---|---|---|
Priority: | minor | Milestone: | 1.4 |
Component: | ajax | Version: | 1.4a1 |
Keywords: | serialize html5 | Cc: | |
Blocked by: | Blocking: |
Description
When using $(form).serialize, HTML 5 input types are ignored (email, date, datetime, etc.)
It would be much better if serialize worked more like the browsers does, and defaulting to text type if the type is unknown. This makes HTML 5 backwards compatible with most browsers (but not with jQuery in this case).
(Does not seem to be fixed in nightly)
Change History (6)
comment:1 Changed 13 years ago by
comment:2 Changed 13 years ago by
Keywords: | html5 added |
---|---|
Priority: | major → minor |
comment:4 Changed 13 years ago by
It matches datetime
in the regexp. I debated whether it might be easier to exclude the types we don't want but settled on this.
comment:5 Changed 13 years ago by
Resolution: | → fixed |
---|---|
Status: | new → closed |
comment:6 Changed 12 years ago by
datetime-local does not work with serializeArray()
module('jQuery'); test('serializeArray should handle datetime and datetime-local', function() { $('<form id=form><input type=datetime name=date value=d />' + '<input type=datetime-local name=local value=l /></form>').appendTo('body'); var expected =[{name: 'date', value: 'd'}, {name: 'local', value: 'l'}] deepEqual($('#form').serializeArray(), expected); });
Note: See
TracTickets for help on using
tickets.
See also enhancement #4668. Serialize should already work properly on non-HTML5 browsers since elem.type=="text" there.