Side navigation
#13651 closed bug (invalid)
Opened March 22, 2013 06:31PM UTC
Closed April 06, 2013 08:42AM UTC
Last modified December 02, 2013 04:30PM UTC
$(form).serialize() fails when the form has an element with ID/name equals "elements"
Reported by: | john.pacey.anthony@gmail.com | Owned by: | john.pacey.anthony@gmail.com |
---|---|---|---|
Priority: | undecided | Milestone: | None |
Component: | unfiled | Version: | 1.9.1 |
Keywords: | Cc: | ||
Blocked by: | Blocking: |
Description
$(form).serialize() fails if the HTML form has an input or select control with ID (or possibly with the name attribute) set to "elements". This seems to be because the $.serialize() function looks for all "properties" of form "this" having a key equals to "elements". But the input/select form control having its id="elements" seems to override that form property somehow, thus resulting in the serialization of an empty array of form elements :(
For example, attempting to serialize a form defined as such:
<form id='perioricTableSubmissionForm'> <input id="professor" name="professor"/> <select id="department" name="department">...</select> <select id="elements" name="elements[]" multiple>...</select> ... </form>
Would return a blank string when calling
$('form').serialize();
because the serialize() method in jQuery does something like this:
... var elements = $.prop(this, "elements"); ...
Attachments (0)
Change History (4)
Changed March 22, 2013 08:53PM UTC by comment:1
owner: | → john.pacey.anthony@gmail.com |
---|---|
status: | new → pending |
Changed March 23, 2013 12:03AM UTC by comment:2
This sounds like our old friend DOM property aliasing, which we can't fix. http://kangax.github.com/domlint/
Changed April 06, 2013 08:42AM UTC by comment:3
resolution: | → invalid |
---|---|
status: | pending → closed |
Because we get so many tickets, we often need to return them to the initial reporter for more information. If that person does not reply within 14 days, the ticket will automatically be closed, and that has happened in this case. If you still are interested in pursuing this issue, feel free to add a comment with the requested information and we will be happy to reopen the ticket if it is still valid. Thanks!
Thanks for taking the time to contribute to the jQuery project! Please provide a complete reduced test case on jsFiddle to help us assess your ticket!
Additionally, be sure to test against the "jQuery (edge)" version to ensure the issue still exists—you may need to change this to a specific version depending on the test case.
To get you started, use the appropriate boilerplate:
Open the link and click to "Fork" (in the top menu) to begin.
Also, please read: http://blog.jquery.com/2013/01/15/jquery-1-9-final-jquery-2-0-beta-migrate-final-released/