Ir para conteúdo

POWERED BY:

Arquivado

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

Alcir Lima

concatenar campo de formulario em variavel javascript

Recommended Posts

Galera, tenho uma função em AJAX onde eu quero passar por parametro o nome do campo de formulário que a funcao devera atuar.

 

ex:

 

function modificarDados(variavel) {

 

....

 

document.forms[0].variavel.options.length = 1;

 

....

 

}

 

gostaria que ficasse assim, ao chamar:

 

modificarDados('campo1');

 

a função executasse o seguinte comando:

 

document.forms[0].campo1.options.length = 1;

 

 

Eu ja tentei dessas formas e nao deu certo

 

document.forms[0].+variavel+.options.length = 1;

document.forms[0].(variavel).options.length = 1;

document.forms[0].+'variavel'+.options.length = 1;

document.forms[0].("variavel").options.length = 1;

 

como faco ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito obrigado, funcionou aqui... agora estou com uma outra dúvida....

 

Este função é o seguinte.... É para gerar dados em selects a partir de consultas em banco de dados de acordo com as opções.

 

Na estrutura HTML pode existir vários formulários...

 

e no meu codigo do script tem:

document.forms[0].elements[select_nome].options.length = 1;

 

Ai diz, pegar o formulário "0", o elemento "selec_nome" que é passado na funcao.

 

queria que o nome do formuario fosse passado dinamicamente tambem

 

a grosso modo:

 

document.forms[variavel_com_o_nome_do_formulario].elements[select_nome].options.length = 1;

Compartilhar este post


Link para o post
Compartilhar em outros sites

não da certo, da errado....

 

 

olha aqui o codigo

 

ajax.js

CODE
function criarDadosSelect(valor,select_nome,form_action,form_nome) {

//verifica se o browser tem suporte a ajax

try { ajax = new ActiveXObject("Microsoft.XMLHTTP"); }

catch(e) {

try { ajax = new ActiveXObject("Msxml2.XMLHTTP"); }

catch(ex) { try { ajax = new XMLHttpRequest(); }

catch(exc) { alert("Esse browser não tem recursos para uso do Ajax"); ajax = null; }

}

}

 

//se tiver suporte ajax

if(ajax) {

//deixa apenas o elemento 1 no option, os outros são excluídos

 

document.forms[form_nome].elements[select_nome].options.length = 1;

 

 

idOpcao = document.getElementById("opcoes");

ajax.open("POST", form_action, true);

ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

 

ajax.onreadystatechange = function() {

 

//enquanto estiver processando...emite a msg de carregando

if(ajax.readyState == 1) { idOpcao.innerHTML = "Carregando...!"; }

 

//após ser processado - chama função processXML que vai varrer os dados

if(ajax.readyState == 4 ) {

if(ajax.responseXML) { processXML(ajax.responseXML,select_nome); }

else {

//caso não seja um arquivo XML emite a mensagem abaixo

idOpcao.innerHTML = "Selecione o tipo";

}

}

}

 

//passa o código do TIPO escolhido

var params = "chave="+valor;

ajax.send(params);

}

}

 

function processXML(obj,select_nome,form_nome){

//pega a tag cidade

var dataArray = obj.getElementsByTagName("estrutura");

 

//total de elementos contidos na tag cidade

if(dataArray.length > 0) {

//percorre o arquivo XML paara extrair os dados

for(var i = 1 ; i < dataArray.length ; i++) {

var item = dataArray;

//contéudo dos campos no arquivo XML

var codigo = item.getElementsByTagName("codigo")[0].firstChild.nodeValue;

var nome = item.getElementsByTagName("nome")[0].firstChild.nodeValue;

 

idOpcao.innerHTML = "Selecione...";

 

//cria um novo option dinamicamente

var novo = document.createElement("option");

//atribui um ID a esse elemento

novo.setAttribute("id", "opcoes");

//atribui um valor

novo.value = codigo;

//atribui um texto

novo.text = nome;

//finalmente adiciona o novo elemento

document.forms[form_nome].elements[select_nome].options.add(novo);

}

}

else {

//caso o XML volte vazio, printa a mensagem abaixo

idOpcao.innerHTML = "Selecione o campo acima";

}

}

O meu código é esse, as variaveis em negrito nao funcionam

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pq você não usa o:

document.getElementById("id_do_campo")

Basta colocar ali entre aspas o ID do campo que você qr pegar....

 

Eu particularmente acho bem mais fácil...

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pq você não usa o:

document.getElementById("id_do_campo")

Basta colocar ali entre aspas o ID do campo que você qr pegar....

 

Eu particularmente acho bem mais fácil...

 

Abraços...

Eu tentei fazer, mas da erro....

o codigo onde uso o document.forms[0] são os seguintes:

 

// Uso numero 1

document.forms[0].elements[select_nome].options.length = 1;

 

// Uso numero 2

document.forms[0].elements[select_nome].options.add(novo);

 

 

O Problema é o seguinte:

Em todas as páginas do meu site existe um formulário de consulta que usa esta função.

 

ai diz que o elemento "select_name" do formulario "0".

 

Como meu site é montado todo dinamicamente, de acordo com a seção e opções do visitante, as vezes o form que usa esta funcao vem em 2 ou 3 lugar...

 

Por isso que queria definir a atuacao da funcao por parametro quando chama a funcao.

 

ex

 

chamarFuncao(nome_ou_id_do_formulario,campo_de_formulario);

 

o "campo_de_formulario" já resolvi. O problema agora é na identificação do formulário.

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.