Field hidden undefined

3 respostas
P

Por favor quem já viu isto, o que pode ser?
No meu jsp defino um hidden:

<%
<input type="hidden" name="hidArquivo" id="hidArq" value="<%=strNomeArquivo%>">
%>

A String strNomeArquivo contém "trop023.txt"

Crio um botão para mostrar o conteúdo do arquivo:

<td height="15" align="center" valign="middle">
<input type="button" name="sAcaoRem" value="<%=strNomeArquivo%>" onClick="javascript:consultarConteudo();">                        
</td>

Quando tento pegar o nome do arquivo no javascript, dá "undefined", veja:

function consultarConteudo(){
    alert('Nome arquivo = '+document.forms[0].hidArquivo.value);
}

A funcão acima mostra "Nome arquivo = undefined"

Aí eu descobri que este field é o elements[4], então fazendo assim:

function consultarConteudo(){
    alert('Nome arquivo = '+document.forms[0].elements[4].value);
}

A funcão acima mostra "Nome arquivo = trop023.txt"

Agora mostra correto, porque? Já fiz isso em outros códigos e funcionou!

Obrigado!
Paulo Robert

* Editado: Utilize BBCode em seus códigos - marcossousa

3 Respostas

M

[size=“18”]Seja bem vindo ao [color=“darkblue”]portal[/color][color=“red”]java[/color][color=“darkblue”].com[/color][/size]

Isto ocorre porque hidArquivo não é propriedade do objeto form. Bom para melhorar seu exemplo no lugar do índice coloque o nome:

function consultarConteudo(){ alert('Nome arquivo = '+document.forms[0].elements['hidArquivo'].value); }

:okok:

P

Obrigado Marcos, mas continua dando “undefined”

Veja o código inteiro da função, estou passando dois campos para um popup:

function consultarConteudo(){

abrirWindow(/fidelidade/popupConsultaRemessa_form.jsp?arquivo=+document.forms[0].elements[4].value+

&txtEndereco=+document.forms[0].txtEndereco.value);

}

O txtEndereço está indo, mas o hidArquivo não vai.
Num outro programa, fiz isso e todos os campos são passados sem problemas, veja:

function consultarLogFidelidade(){ abrirWindowLog(/fidelidade/popupLogFidelidade_form.jsp?hidIdMovimento=+document.forms[0].hidIdMovimento.value+

&NumReserva=+document.forms[0].hidNumReserva.value+&CodUh=+document.forms[0].hidCodUh.value

+&optStatusValidacao=+document.forms[0].optStatusValidacao.value+&optStatusEnvio=+document.forms[0].optStatusEnvio.value);

}

Vou continuar tentando, se tiver mais alguma sugestão por favor mande.

:?:
Obrigado
Paulo Robert

P

Com a dica do Marcos e a ajuda do meu amigo Eloir, o problema foi resolvido abandonando o uso do campo hidden, segue o novo código:

<td height="15" align="left" valign="middle"> 
<a href="javascript:consultarConteudo('<%=strNomeArquivo%>');"
<font face="Arial, Helvetica, sans-serif" size="2">&nbsp;<%=strNomeArquivo%>&nbsp;</font>
</a> 
</td>
function consultarConteudo(obj) {
abrirWindow('/fidelidade/popupConsultaRemessa_form.jsp?arquivo='+obj+    '&txtEndereco='+document.forms[0].txtEndereco.value);
}

A função recebe o parâmetro “obj” que contém o nome do arquivo que é passado para o popup.

Valeu!
:lol:
Paulo Robert

Criado 13 de julho de 2007
Ultima resposta 17 de jul. de 2007
Respostas 3
Participantes 2