表单序列化

        function serialize(form){
            var attr = [];
            for(var i=0;i<form.elements.length;i++){
                var obj = form.elements[i];
                switch(obj.type){
                    case undefined:
                    case 'button':
                    case 'submit':
                    case 'reset':
                    case 'file':
                        break;
                    case 'radio':
                    case 'checkbox':
                        if(!obj.selected)break;
                    case 'select-one':
                    case 'select-multiple':
                        for(var j=0;j<obj.options.length;j++){
                            var option = obj.options[j];
                            if(option.selected){
                                var optValue = '';
                                if(option.hasAttribute){
                                    optValue = option.hasAttribute('value') ? option.value : option.text;
                                }else{
                                    optValue = option.attributes('value').specified ? option.value : option.text;
                                };
                                attr.push(obj.name+'='+optValue);
                            };
                        };
                        break;
                    default:
                        attr.push(obj.name+'='+obj.value);
                };
            };
            return attr;
        };

传入参数为原生form表单对象

返回出来的是数组

posted @ 2013-06-21 11:07  抱.抱  阅读(285)  评论(0编辑  收藏  举报