1 /**
  2  * @fileOverview process form config
  3  * @author yiminghe@gmail.com
  4  */
  5 KISSY.add("ajax/form", function (S, io, DOM, FormSerializer) {
  6 
  7     io.on("start", function (e) {
  8         var xhrObject = e.xhr,
  9             form,
 10             d,
 11             enctype,
 12             formParam,
 13             c = xhrObject.config;
 14         // serialize form if needed
 15         if (c.form) {
 16             form = DOM.get(c.form);
 17             enctype = form['encoding'] || form.enctype;
 18             // 上传有其他方法
 19             if (enctype.toLowerCase() != "multipart/form-data") {
 20                 // when get need encode
 21                 formParam = FormSerializer.serialize(form);
 22                 if (formParam) {
 23                     if (c.hasContent) {
 24                         // post 加到 data 中
 25                         c.data = c.data || "";
 26                         if (c.data) {
 27                             c.data += "&";
 28                         }
 29                         c.data += formParam;
 30                     } else {
 31                         // get 直接加到 url
 32                         c.url += ( /\?/.test(c.url) ? "&" : "?" ) + formParam;
 33                     }
 34                 }
 35             } else {
 36                 d = c.dataType[0];
 37                 if (d == "*") {
 38                     d = "text";
 39                 }
 40                 c.dataType.length = 2;
 41                 c.dataType[0] = "iframe";
 42                 c.dataType[1] = d;
 43             }
 44         }
 45     });
 46 
 47     return io;
 48 
 49 }, {
 50     requires:['./base', "dom", "./FormSerializer"]
 51 });