你的位置:首页 > 软件开发 > Java > 表单中单选、多选、选择框值的获取及表单的序列化

表单中单选、多选、选择框值的获取及表单的序列化

发布时间:2015-12-17 13:00:11
总结了下在表单处理中单选、多选、选择框值的获取及表单的序列化,写成了一个对象。如下: 1   var formUtil = { 2 // 获取单选按钮的值,如有没有选的话返回null 3 // elements为radio类的集合的引用 4 getRadi ...

总结了下在表单处理中单选、多选、选择框值的获取及表单的序列化,写成了一个对象。如下:

 1   var formUtil = { 2     // 获取单选按钮的值,如有没有选的话返回null 3     // elements为radio类的集合的引用 4     getRadioValue:function(elements) { 5       var value = null; // null表示没有选中项 6       // 非IE浏览器 7       if(elements.value != undefined && elements.value != '') { 8         value = elements.value; 9       } else { 10         // IE浏览器 11         for(var i = 0, len = elements.length; i < len; i++ ) { 12           if(elements[i].checked) { 13             value = elements[i].value; 14             break; 15           } 16         } 17       } 18       return value; 19     }, 20      21     // 获取多选按钮的值,如有没有选的话返回null 22     // elements为checkbox类型的input集合的引用 23     getCheckboxValue:function(elements) { 24       var arr = new Array(); 25       for(var i = 0, len = elements.length; i < len; i++ ) { 26         if(elements[i].checked) { 27           arr.push(elements[i].value); 28         } 29       } 30       if(arr.length > 0) { 31         return arr.join(','); 32       } else { 33         return null; // null表示没有选中项 34       }   35     }, 36      37     // 获取下拉框的值 38     // element为select元素的引用 39     getSelectValue:function(element) { 40       if(element.selectedIndex == -1) { 41         return null; // 没有选中的项时返回null 42       }; 43       if(element.multiple) { 44         // 多项选择 45         var arr = new Array(), options = element.options; 46         for(var i = 0, len = options.length; i < len; i++) { 47           if(options[i].selected) { 48             arr.push(options[i].value); 49           } 50         } 51         return arr.join(","); 52       }else{ 53         // 单项选择 54         return element.options[element.selectedIndex].value; 55       } 56     }, 57      58     // 序列化 59     // form为form元素的引用 60     serialize:function(form) { 61       var arr = new Array(), 62       elements = form.elements, 63       checkboxName = null; 64       for(var i = 0, len = elements.length; i < len; i++ ) { 65         field = elements[i]; 66         // 不发送禁用的表单字段 67         if(field.disabled) { 68           continue; 69         } 70         switch (field.type) { 71           // 选择框的处理 72           case "select-one": 73           case "select-multiple": 74             arr.push(encodeURIComponent(field.name) + "=" + encodeURIComponent(this.getSelectValue(field))); 75             break; 76            77           // 不发送下列类型的表单字段   78           case undefined : 79           case "button" : 80           case "submit" : 81           case "reset" : 82           case "file" : 83             break; 84            85           // 单选、多选和其他类型的表单处理    86           case "checkbox" : 87             if(checkboxName == null) { 88               checkboxName = field.name; 89               arr.push(encodeURIComponent(checkboxName) + "=" + encodeURIComponent(this.getCheckboxValue(form.elements[checkboxName]))); 90             } 91             break; 92           case "radio" : 93             if(!field.checked) { 94               break; 95             } 96           default: 97             if(field.name.length > 0) { 98               arr.push(encodeURIComponent(field.name) + "=" + encodeURIComponent(field.value)); 99             } 100         }101       }102       return arr.join("&");103     } 104   };

 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

原标题:表单中单选、多选、选择框值的获取及表单的序列化

关键词:序列

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。