- From: Garrett Smith <dhtmlkitchen@gmail.com>
- Date: Tue, 6 Jan 2009 22:02:13 -0800
On Tue, Jan 6, 2009 at 9:11 PM, Michael A. Puls II <shadow2531 at gmail.com> wrote: > On Tue, 06 Jan 2009 17:07:00 -0500, Ian Hickson <ian at hixie.ch> wrote: > >> On Tue, 6 Jan 2009, Michael A. Puls II wrote: >>> >>> > >>> > Are browsers actually buggy here? >>> >>> You probably won't buy it, but I like the idea of using a form as a user >>> input data gatherer for in-page js-based apps where you do custom things >>> with the data and often don't actually submit the data anywhere. >> >> Oh this is quite common, I'm just not entirely sure that the form data set >> serialised is a good way of handling that data. > Extremely common. There are more than one way to handle this, potentially. Submit a FORM to XHR, for one. Serialize a form is possible today and it works. It just doesn't work natively. Well, it does, we just can't get at that serialized value. > I see. It might be better if there was a getFormData() that returned: > > { > "name1" : ["value1", "value2"], > "name2" : ["value1", "value2"], > }; > That is the basis for all most form serializers. > > {"image1" : {"file.png" : "data:image/png,base64... }} > Synchronous client-side reads are apparently not going to be a part of form serialization. What do you do with input type="file"? Sending the name is pretty useless. [snip] > > I'll try to implement a getFormData() in JS how I think it should be while > trying to follow the spec and provide feedback. > Tips: * If a button submitted the form, it is not included in serialization. Opera, onsubmit, the event.relatedTarget is the submit button (nonstandard). The submit button that was clicked should be included[1]. * input type="image" is not included in the elements collection and is not included in the serialization in Form.js. The x/y coordinates don't matter much (you don't need them). A form serializer should follow the guidelines on successful form controls[1]. In case it isn't obvious, the form controls should not be accessed directly off the form, e.g. form.controlName (error-prone). Instead the elements collection should be used, e.g. form.elements.controlName. Garrett [1]http://www.w3.org/TR/html401/interact/forms.html#h-17.13.2 [2]http://jibbering.com/faq/names/
Received on Tuesday, 6 January 2009 22:02:13 UTC