Duvidas com manipulação de textos dinamicos

Galera,

to com uma duvida aqui … nao sei se é algo muito basico q estou errando pois sou novato!

eu tenho no meu JSP uma combo onde preciso onde, de acordo com o resultado de uma combo, sera o label de outro campo… sera uma parada meio dinamica em tempo de execução…

entao no onchange do combo eu chamo uma função do java script para fazer um if que vai setar para uma variavel o valor que eu quero por exemplo…

var enderIpDal = ‘<bean:message key=“destinosAlarmes.enderIpDal” bundle=“GetinfoMessageResources”/>’;

var servidorSMTP =’<bean:message key=“destinosAlarmes.servidorSMTP” bundle=“GetinfoMessageResources”/>’;

entao jogo esses valores para uma variavel para usa-la no JSP

mas nao consigo usa-la com um input ou um html:text ou <c:out …

atribuindo as strings acima em value, no imput eu consigo ate fazer o que eu quero, mas nao com uma variavel… dae nao consigo fazer do jeito dinamico que eu queria…

estou fazendo como esta abaixo… quer dizer testando separadamente cada coisa …

<c:out value="${mudaLbNomeComuna}"/>


<html:text style=“border: 0pt; background-color: white; font-weight: bold” property=“mudaLbNomeComuna” styleId=“mudaLbNomeComuna” size=“40” value="" readonly=“true” />

da um help ae galeraa!!

po pessoal, ngm tem uma luz ae pra mim nessa duvida??

to precisando de uma ajudinha ae…

heeeelp

Veja se o exemplo abaixo ajuda:

New Document Label 1 Label 2 Label 3 Label 4




Aqui vai o label alterado conforme opção escolhida no combo

pelo que vi, acho que o seu exemplo nao se encaixa no que preciso…

na combo eu tenho os valores SOCKET,SMNP, SMTP

e no script eu tenho uma variavel que ira receber nao o valor da combo, mas um valor especifico que representa um codigo JSTL e ao imprimir ele traduz isso imprimindo na pagina uma label especificada em um arquivo MessageResources, como disse o input fez direitinho… mas nao fez dinamicamente…

entao se por exemplo for socket o valor da combo
dae a variavel recebe

var label = ‘<bean:message key=“destinosAlarmes.servidorSMTP” bundle=“GetinfoMessageResources”/>’;

o nome da label de acordo com o codigo é Servidor SMTP

se for SMNP ou SMTP sera outro valor mas sera um codigo similar…

o negocio é que nao consigo expor o valor dessa variavel na tela

Então você terá que primeiro guardar o conteúdo de cada label vindo do bundle em variáveis javascript públicas.

Ao disparar o onChange do combobox você executa a função javascript que trocará o label com os valores já populados nas variáveis públicas.

New Document Label 1 Label 2 Label 3 Label 4




Teste
<html:text style=“border: 0pt; background-color: white; font-weight: bold” property=“mudaLbNomeComuna” styleId=“mudaLbNomeComuna” size=“40” value="" readonly=“true” />

Mas esse exemplo tem o problema de ter as opções fixas de somente 3, se precisar mais algum ou retirar um sempre será necessário alterar na tela.

Você entendeu o meu exemplo? Ao carregar a página pela primeira vez irá aparecer o label Teste para o campo mudaLbNomeComuna, então, ao alterar o valor do combo (preenchido já com SOCKET, SMNP e SMTP) a função trocaLabel irá trocar o trecho HTML da tag LABEL pelo conteúdo da variável javascript, nesse momento já populada com os valores “lidos” do bundle.

Se ainda não for isso, me desculpe, eu então não entendi o problema, hehe.

:smiley:

Dessa vez vc entendeu sim o que eu precisava hehe

entendi o que vc quis dizer no seu exemplo e fiz um teste aqui…

eu ja tinha um if muito parecido com o seu, a diferença era que eu nao usava innerHTML e sim o value mesmo

bom coloquei aquela tag Teste e atribui a idLabel a saida do meu script

mas nao funcionou… nao entendi porque…

nao tem alguma maneira de usar uma variavel na tag input?
sei la… mas estamos nos entendendo hehe!

opa

esqueci de mencionar que o script fica em outro arquivo

mas acabei de pegar toda a função e colocar como vc me mostrou ali… e funcionou hehehe

pq isso acontece?? em um arquivo separado nao funca e assim funca… sendo que o jsp tem uma ligação com o arquivo declarado no inicio… hehehe

antes para testar nao usando o bundle eu coloquei em variaveis o que eu queria que aparecesse mesmo e mesmo o script em outro arquivo ele funcionava perfeito !!!

tem algum motivo logico pra isso acontecer?

No IE é possível criar propriedades adicionais às tags, exemplo:

Onde a propriedade valida foi criada para um teste específico, sendo acessada assim:

if (document.forms[0].codEmpresa.valida == “true”) {
bla bla bla
}

Bom, voltando ao problema de não funcionar com o script em outro arquivo, como você está fazendo isso?

Você está “adicionando” um fragmento de JSP com o script dentro ou adicionando um arquivo .js no início da página JSP em questão?

dae camarada!

no eclipse eu tenho uma pasta para os scripts e uma para os jsp

cada jsp deve ter um script associado a ele, pelo menos com uma função init

entao no jsp eu declaro no inicio do codigo apos as taglibs do struts e do jstl

e a tua solução ali ficou joia!! realmete acertasse em cheio o que eu queria fazer!! hehe

Blz, mas quando você diz que não funciona, na verdade não acontece nada (não troca o label) e também não dá erro de javascript?

Ou não faz nada e dá erro de javascript? Você tem como pegar o erro, então?

olha cara

eu fiz dois testes aqui agora pra ver…

um no IE outro no fireFox

ele ja carrega a pagina com erro, dae usei o fireFox pra ver pelo console o que poderia ser

um tal de objShown que ele afirma nao ter propriedades, de certo alguma declaração invalida…

mas o que acontece qndo eu mudo o valor do combo, pra qualquel valor, ele simplismente nao mostra nada!!

dae colocando o script dento do codigo ele funciona!! mesmo carregando aquele erro q mencionei ali…

eu to achando que ele nao consegue encontrar a variavel qndo ela esta no .js algo como o styleId …será que é isso?? vou fazer um teste aqui…

fiz o seguinte teste

declarei

<html:hidden property=“idLabel” styleId=“idLabel” value=""/>

sobre a tag label mas nao funcionou tb… na real nem sei se o que eu fiz tem alguma logica… hehe

Isso tá começando a fica confuso agora…heheh…

Posso lhe garantir que se o script estiver já dentro do JSP ou sendo carregado via o comportamento é o mesmo.

Acho que você precisa fazer testes um de cada vez isolando alguns pontos.

Verifique se não há campos com o mesmo nome mas com funcionalidades diferentes.

Verifique se o campo está realmente dentro do form, se é que existe um form no .

Verifique se o id utilizado na tag já não é usado como um nome de campo.

Coloque pontos de debug (nesse caso vários alert) para verificar passo a passo onde está o entrave.

Agora você terá que pedalar e entender o que está acontecendo, acho que vai ser mais rápido do que eu tentar entender todo o aparato que você montou aí.

E outra coisa, alguns erros de javascript “mascaram” a continuação do processo correto. Tente consertar o tal do erro lá do objShown primeiro.

Boa sorte…

hehehehehe

olha cara valeu a tua ajuda mesmo!! realmente me deu um grande help

a parada da label funcionou so que por enquanto vou deixar a função javascript em um codigo isolado como tu me mostrou anteriormente pois assim funciona!!

mais tarde farei outros testes pra ver se é possivel deixa-la no .js

mas tenho outras coisas pra adiantar hehehe

mas agradeço muito mesmo!!

ah so uma coisa sobre carregar o .js

concordo contigo q sem duvida o comportamento é o mesmo!!

tanto que ele chama a função normalmente… so nao consegue manipular a variavel com o valor carregado la, nao sei pq cargas d´agua hehehe

eu tinha feito um teste antes com valores fixos sem usar o bundle e funcionava …

bom assim do jeito que esta por enquanto esta bom…vou deixar essas coisas do outro mundo pra mais tarde!!! heheheh

mais uma vez valeu pela ajuda!!

boa pascoa!!