[SOLUCIONADO] JavaScript - Pegar um valor dinamicamente e setar num campo hidden

10 respostas
A

Olá galera, possuo o código JavaScript abaixo que retorna um valor numérico, gostaria de setá-lo num input type=“hidden” lá no
value, como faço isso? Pois ele está entendendo como String da forma que estou fazendo:

<td><input type="hidden" name="text2" value="trataURL()" /></td>

function trataURL(){ url = window.location; url = url.toString(); url = url.split("?"); return url[1]; }

10 Respostas

A

Pior que parece ser tão fácil rs :smiley:

G

Pior que é :lol:

&lt;body onload="document.getElementsByName('text2').value = trataURL();"&gt;
A

Puxa, fiz os testes mas continua não funcionando... Chega vazio na action daí da NumberFormatException...

<title></title>
	<script language="javascript">
		function trataURL(){
			url = window.location;
			url = url.toString();
			url = url.split("?");
			return url[1];
		}
	</script>
</head>
<body onload="document.getElementsByName('text2').value = trataURL();"> 
<h2>Passo 2 de 3</h2><br />
	<form name="form1"  action="CampoFornecedorServlet" method="post">
			<table border="1">
				<tr>
					<td><br /><br /> Fornecedor: <input type="text" name="text1" /><br /><br /> </td>
					<td><input type="hidden" name="text2" /></td>
				</tr> 
			</table> 		
			<input type="submit" value="Busca Arquivo Epub" /><br />
	</form>
</body>
A

Desta forma também não funcionou:

<script language="javascript">
		function trataURL(){
			url = window.location;
			url = url.toString();
			url = url.split("?");
			document.getElementById('text2_1').value = url[1];
		}
	</script>
</head>
<body> 
<h2>Passo 2 de 3</h2><br />
	<form name="form1"  action="CampoFornecedorServlet" method="post">
			<table border="1">
				<tr>
					<td><br /><br /> Fornecedor: <input type="text" name="text1" /><br /><br /> </td>
					<td><input type="hidden" name="text2" id="text2_1" /></td>
				</tr> 
			</table> 		
			<input type="submit" value="Busca Arquivo Epub" /><br />
	</form>
A

Granella:
Pior que é :lol:

&lt;body onload="document.getElementsByName('text2').value = trataURL();"&gt;

Puxa fiz um outro teste, funciona, mas só no IE… :smiley:

Conhece alguma maneira de deixar multi-plataforma?

G

assim deve funcionar, testei no Chrome:

&lt;html&gt; &lt;head&gt; &lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8"&gt; &lt;script type="text/javascript"&gt; function trataURL(frm) { url = window.location; url = url.toString(); url = url.split("?"); frm.text2.value = url[1]; } &lt;/script&gt; &lt;/head&gt; &lt;body&gt; &lt;h2&gt;Passo 2 de 3&lt;/h2&gt;<br /> &lt;form name="form1" action="Teste" method="post" onsubmit="trataURL(this)"&gt; &lt;table border="1"&gt; &lt;tr&gt; &lt;td&gt;<br /><br /> Fornecedor: &lt;input type="text" name="text1" /&gt;<br /><br />&lt;/td&gt; &lt;td&gt;&lt;input type="hidden" name="text2" value="" /&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;input type="submit" value="Busca Arquivo Epub" /&gt;<br /> &lt;/form&gt; &lt;/body&gt; &lt;/html&gt;

F

Granella:
assim deve funcionar, testei no Chrome:

&lt;html&gt; &lt;head&gt; &lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8"&gt; &lt;script type="text/javascript"&gt; function trataURL(frm) { url = window.location; url = url.toString(); url = url.split("?"); frm.text2.value = url[1]; } &lt;/script&gt; &lt;/head&gt; &lt;body&gt; &lt;h2&gt;Passo 2 de 3&lt;/h2&gt;<br /> &lt;form name="form1" action="Teste" method="post" onsubmit="trataURL(this)"&gt; &lt;table border="1"&gt; &lt;tr&gt; &lt;td&gt;<br /><br /> Fornecedor: &lt;input type="text" name="text1" /&gt;<br /><br />&lt;/td&gt; &lt;td&gt;&lt;input type="hidden" name="text2" value="" /&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;input type="submit" value="Busca Arquivo Epub" /&gt;<br /> &lt;/form&gt; &lt;/body&gt; &lt;/html&gt;

Teoricamente deve funcionar. Pois a função será executada quando você enviar o formulário. O teu exemplo anterior não funcionava porque você chamava a função no abrir da página e o campo não tinha sito gerado ainda. O correto é chamar o JS depois de gerar o campo. Algo do tipo:

&lt;input type="hidden" name="text2" value="" /&gt;
&lt;script&gt;
trataURL();
&lt;/script&gt;
A

febeckers:
Granella:
assim deve funcionar, testei no Chrome:

&lt;html&gt; &lt;head&gt; &lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8"&gt; &lt;script type="text/javascript"&gt; function trataURL(frm) { url = window.location; url = url.toString(); url = url.split("?"); frm.text2.value = url[1]; } &lt;/script&gt; &lt;/head&gt; &lt;body&gt; &lt;h2&gt;Passo 2 de 3&lt;/h2&gt;<br /> &lt;form name="form1" action="Teste" method="post" onsubmit="trataURL(this)"&gt; &lt;table border="1"&gt; &lt;tr&gt; &lt;td&gt;<br /><br /> Fornecedor: &lt;input type="text" name="text1" /&gt;<br /><br />&lt;/td&gt; &lt;td&gt;&lt;input type="hidden" name="text2" value="" /&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;input type="submit" value="Busca Arquivo Epub" /&gt;<br /> &lt;/form&gt; &lt;/body&gt; &lt;/html&gt;

Teoricamente deve funcionar. Pois a função será executada quando você enviar o formulário. O teu exemplo anterior não funcionava porque você chamava a função no abrir da página e o campo não tinha sito gerado ainda. O correto é chamar o JS depois de gerar o campo. Algo do tipo:

&lt;input type="hidden" name="text2" value="" /&gt;
&lt;script&gt;
trataURL();
&lt;/script&gt;

febeckers, vc é dez!
valeu abraços,

F

Falow…

A

Granella :smiley: valeu…

Criado 8 de fevereiro de 2011
Ultima resposta 9 de fev. de 2011
Respostas 10
Participantes 3