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 });