Chamar funções javascript de objetos gerados dinamicamente

4 respostas
M

Galerinha,

eu criei eu método javascript para gerar uma tabela dinamicamente. Ela está sendo exibida e tudo mais, o problema é que meu botão não responde ao evento onclick.

function montaPesquisa(tabelaId, labelId){
	limpaDados(tabelaId, labelId);
	var container = document.getElementById(tabelaId);
	
	// cria linha principal compreende toda a área dos itens
	var tr_m = document.createElement("tr");
	
	// cria coluna principal
	var td_m = document.createElement("td");

	// cria tabela principal
	var table_m = document.createElement("table");
	table_m.cellpadding="0";
	table_m.cellspacing="0";
	table_m.border="0";
	table_m.width="100%";

	// crio aqui o conteúdo
	
	var tfoot_m = document.createElement("tfoot");
	var tr_f = document.createElement("tr");
	var td_f = document.createElement("td");
	td_f.colSpan = "6";
	
	//cria botão de submissão do formulário
	var submitForm = document.createElement("input");
	submitForm.type="submit"; 
	submitForm.value="Consultar"; 
	submitForm.className="control";
	td_f.appendChild(submitForm);

	var space = document.createElement("span");
	space.innerHTML = " ";
	td_f.appendChild(space);
	
	// cria botão para cancelar
	var cancelForm = document.createElement("input");
	cancelForm.type="button";
	cancelForm.value="Cancelar";
	cancelForm.className="control"
	cancelForm.onClick="limpaDados('consulta','oculta');"; // quando clica no botão ele não executa limpa dados.
	td_f.appendChild(cancelForm);
	
	tr_f.appendChild(td_f);
	tfoot_m.appendChild(tr_f);
	table_m.appendChild(tfoot_m);
	
	// adiciona
	td_m.appendChild(table_m);							
	tr_m.appendChild(td_m);
	container.appendChild(tr_m);
}
O curioso é que se eu usar o botão do tipo submit ele responde normalmente, mas o botão cancelar não chama a função limpaDados ao clicar no botão. Há alguma forma de resolver este problema?

:pensativo:

4 Respostas

J

Mas isso não vai funcionar mesmo não!

Você está atribuindo uma string a uma função…

cancelForm.onClick = function(){ limpaDados('consulta','oculta'); }

M

Jair,

Faz sentido, mas não funcionou também. Alguma outra sugestão?

:pensativo:

J

A função é onclick, não onClick…

M

Nossa, valeu cara, eu ia ficar mais uma noite até descobrir isto… por os amigos browsers nem para falar, mostrar algum problema… ficou show.

Obrigado.

:tosco: :coffee: :yamo:

Criado 13 de junho de 2006
Ultima resposta 13 de jun. de 2006
Respostas 4
Participantes 2