国内最全IT社区平台 联系我们 | 收藏本站
华晨云阿里云优惠2
您当前位置:首页 > web前端 > jscript > YUI html表单序列化 html form serialize

YUI html表单序列化 html form serialize

来源:程序员人生   发布时间:2014-03-04 05:35:25 阅读次数:2607次

yui3版本的表单序列化。我发现网的yui的教程不多。最流行的不一定是最好的,就我个人来说,偏爱yui甚于jquery。

用法:

一、serializeForm('#formid'),返回a=55&b=option1&b=option2

二、serializeForm('#formid',true),返回对象{afile:'55',bfield:['option1','option2]}

var serializeForm = (function(){
var namevalues = {};
function add(name,value){
if(namevalues[name]){
if(Y.Lang.isArray(namevalues[name])){
namevalues[name].push(value);
}else{
namevalues[name] = [namevalues[name]];
namevalues[name].push(value);
}
}else{
namevalues[name] = value;
}
}
return function(form,obj){
namevalues = {};
var formNode;
if(form){
if(Y.Lang.isString(form)){
formNode = Y.one(form);
}else{
formNode = form;
}
}
var items = formNode.all('input[name][type=text],input[name][type=hidden],input[name][type=radio]:checked,input[name][type=check]:checked,select[name],textarea[name]');

items.each(function(nel){
if(nel.get('tagName').toUpperCase() == "SELECT"){
nel.get('options').each(function(op){
if(op.get('selected')){
add(nel.get('name'),op.get('value'));
}
});
}else{
add(nel.get('name'),nel.get('value'));
}
});
if(obj){
return namevalues;
}else{
Y.QueryString.stringify(namevalues);
}
};
})();
生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠
程序员人生
------分隔线----------------------------
分享到:
------分隔线----------------------------
为码而活
积分:4237
15粉丝
7关注
栏目热点
关闭
程序员人生