Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

SavioR

montar uma querystring

Recommended Posts

Olá pessoal,

 

estou desenvolvendo aqui umas funcoes javascript e uma delas (a abaixo), pega e me monta uma querystring para ser passada por parametro.

 

Sei que no prototype framework tem a Funcao Form.serialize, mas é que eu uso um form só e vários fieldsets. Dae escrevi essa funcao para pegar os elementos dessa fieldsets (passada a id por parametro) e pegando os nós para montar a querystring.

 

Mas acho que acabei fazendo uma funcao super complexa O.o

 

var formUtils = {		pars: "",		formElementsTags: $A(['input','select','textarea','fieldset']),		getFormElements : function (element) {			arrElements = new Array();			if (element = $(element)) {				element.cleanWhitespace();				childs = $A(element.childNodes);				childs = childs.compact();				childs.each(function (node) {								var childs = $A(node.childNodes);								if (childs.length > 0) {									childs = childs.compact();									childs.each(function (n) {											formUtils.formElementsTags.each(function (value) {																		if (value == n.nodeName.toLowerCase()) {																				if ($(n.getAttribute("id")))																					formUtils.pars += Form.Element.serialize($(n.getAttribute("id")));																			}																		});												});								} else {									formUtils.formElementsTags.each(function (value) {																		if (value == node.nodeName.toLowerCase()) {																			if ($(node.getAttribute("id"))) {																				if (formUtils.pars.length > 0)																					formUtils.pars += '&';																				formUtils.pars += node.getAttribute("id")+"="+node.getAttribute("value");																			}																		}																	});								}							});			}			return false;		}	};

Dae para chamar ele eu faço assim: return formBusca.buscar('modalidade');

onde o modalidade é o id de um <fieldset> (que contem elements input,select, etc...)

 

Eu acho que acabei fazendo um Obfuscated Javascript O.o (um javascript complexo) ;x

 

Caso nao entendam a logica, eu explico melhor dae ^^

Quem puder me ajudar a melhorar ele, dá posta ae (y) ;D

 

 

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

voce pode usar recusao para pegar os nos, eu tenho uma funcao que aplica um iterador em todos os nos de um elemento, vo passa, v c ajudar:

 

document.recusiveParse = function(node, func) {	node = $(node);		var nodes = node.childNodes;	var args = arguments[2] || null;		for(var i = 0; i < nodes.length; i++) {		var n = nodes[i];				if(n.nodeType != 1)			continue;				func(n, args);				if(n.childNodes.length > 0) {			document.recusiveParse(n, func, args);		}	}};

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.