zzgbsh
zzgbsh
  • 发布:2015-08-27 19:28
  • 更新:2018-07-22 15:01
  • 阅读:7749

mui 表单序列化怎么做

分类:MUI

mui 表单序列化怎么做?难道需要再引用一个类库!!!!

2015-08-27 19:28 负责人:无 分享
已邀请:
h***@qq.com

h***@qq.com

//获取指定form中的所有的<input>对象  
    function getElements(formId) {  
        var form = document.getElementById(formId);  
        var elements = new Array();  
        var tagElements = form.getElementsByTagName('input');  
        for (var j = 0; j < tagElements.length; j++){  
            elements.push(tagElements[j]);  
        }  
        return elements;  
    }  
    //获取单个input中的【name,value】数组  
    function inputSelector(element) {  
        if (element.checked)  
            return [element.name, element.value];  
    }  
    function input(element) {  
        switch (element.type.toLowerCase()) {  
            case 'submit':  
            case 'hidden':  
            case 'password':  
            case 'text':  
                return [element.name, element.value];  
            case 'checkbox':  
            case 'radio':  
                return inputSelector(element);  
        }  
        return false;  
    }  
    //组合URL  
    function serializeElement(element) {  
        var method = element.tagName.toLowerCase();  
        var parameter = input(element);  
        if (parameter) {  
            var key = encodeURIComponent(parameter[0]);  
            if (key.length == 0) return;  
  
            if (parameter[1].constructor != Array)  
                parameter[1] = [parameter[1]];  
            var values = parameter[1];  
            var results = [];  
            for (var i=0; i<values.length; i++) {  
                results.push(key + '=' + encodeURIComponent(values[i]));  
            }  
            return results.join('&');  
        }  
    }  
    //调用方法  
    function serializeForm(formId) {  
        var elements = getElements(formId);  
        var queryComponents = new Array();  
        for (var i = 0; i < elements.length; i++) {  
            var queryComponent = serializeElement(elements[i]);  
            if (queryComponent)  
                queryComponents.push(queryComponent);  
        }  
        return queryComponents.join('&');  
    }  
    function getFormInfo(){  
        var params = serializeForm('login');  
        alert(params);  
    }
5***@qq.com

5***@qq.com

getSelectValue,getCheckboxValue这两方法没有啊

agressor

agressor

function serialize(form){
var arr = new Array(),
elements = form.elements,
checkboxName = null;
for(var i = 0, len = elements.length; i < len; i++ ) {
field = elements[i];
// 不发送禁用的表单字段
if(field.disabled) {
continue;
}
switch (field.type) {
// 选择框的处理
case "select-one":
case "select-multiple":
arr.push(encodeURIComponent(field.name) + "=" + encodeURIComponent(this.getSelectValue(field)));
break;

     // 不发送下列类型的表单字段   
     case undefined :  
     case "button" :  
     case "submit" :  
     case "reset" :  
     case "file" :  
     break;  
        
     // 单选、多选和其他类型的表单处理    
     case "checkbox" :  
      if(checkboxName == null) {  
       checkboxName = field.name;  
       arr.push(encodeURIComponent(checkboxName) + "=" + encodeURIComponent(this.getCheckboxValue(form.elements[checkboxName])));  
      }  
      break;  
     case "radio" :  
      if(!field.checked) {  
       break;  
      }  
     default:  
      if(field.name.length > 0) {  
       arr.push(encodeURIComponent(field.name) + "=" + encodeURIComponent(field.value));  
      }   
    }  
   }  
   return arr.join("&");  
  } 
  • 5***@qq.com

    getSelectValue,getCheckboxValue这两方法没有啊


    2016-05-13 09:19

该问题目前已经被锁定, 无法添加新回复