- From: David Sickmiller <davesickmiller@gmail.com>
- Date: Wed, 18 Apr 2012 16:50:45 +1200
- To: public-webapps@w3.org
- Message-ID: <4F8E4825.7010201@gmail.com>
Hi, I must admit I am ignorant of the W3C process for drafting the XMLHttpRequest, but I see that the webpage says to send feedback to this address, so I am writing this email to submit my feedback. The "new FormData(form)" constructor is an especially handy way to slurp in all the data for a given form. As the documentation describes, the algorithm for constructing the form data set is quite intricate -- it takes 3 pages to describe. I have an application where I need to change or remove field values that were received from the user, before they are submitted using an XHR. (I'm removing cue text from text input fields.) It would be ideal to call some sort of FormData.remove() (or perhaps "removeAllByName") method. Unfortunately, no function like that is defined in the FormData interface. The most obvious alternative is to re-implement the 3-page algorithm to construct the form data set, and then add my application-specific twist. That's not a simple task to get perfect. I can think of a few workarounds, but none are great. I could change the field values before constructing FormData, but that would be visible to the user, and I would need to revert the field values if the user needs to continue interacting with the form (e.g. to fix an error reported by the server). A slightly better workaround would be to change or remove the field names before constructing FormData, because that would not be visible to the user. However, it would still require un-doing and still feels like a hack. In contrast, adding additional fields to FormData after construction is simple; just call FormData.append(). Here's my proposal for a FormData.removeAllByName() method: fd.removeAllByName(name) * Removes all name/value pairs matching the specified name. * Returns a number indicating how many name/value pairs were removed. Thank you, David
Received on Wednesday, 18 April 2012 12:04:04 UTC