Capturar valor digitado - javascript puro

5 respostas
P

Pessoal,

Tenho um imput html:

Nele, como da pra ver, quero mostrar um valor que é capturado de uma interacao com o usuário, nesse elemento:

Ate agora, to com esse scrip pra fazer isso:

<script type="text/javascript" >

 		function mostraTotal(){
 	var valorUnitario = 15,00;
 	var valor =  document.getElementById("valorid").getAttribute("value").call();
 	valor *= valorUnitario;

 		}

</script>

E não acontece nada. Talvez alguém possa me dar uma luz. Fiz isso com base no que achei ate agora em alguns tutoriais. Quero multiplicar a entrada por uma constante.

Valeu :slight_smile:

5 Respostas

D

Não entendi direito.
Para obter o valor digitado, você precisa apenas do

var valor = document.getElementById('idDoElemento').value
W

Ola, fiz algumas modificacoes no seu codigo.

<html>
	<head>		
		<title>test</title>
		<script type="text/javascript">	
		
			function mostraTotal(input) {			
				var valorUnitario = 15.00;  
				var valor =  input.value;  
				valor *= valorUnitario;  
				input.value = valor;  
			} 
			
		</script>
		
		
	</head>
	
		<body>
			<input id="valorid" onblur="mostraTotal(this);" class="caixa_texto" style="width:50px;" type="text" name="extras" value="0">			
		</body>		
	
</html>

Primeiro eu troquei var valorUnitario = 15,00; por var valorUnitario = 15.00; (com ponto e nao virgula).

No input, eu gosto de passar o objeto que esta chamando a funcao (this), dessa forma fica mais facil de pegar e atribuir novos valores e vc nao precisa ficar usando getElementById desnecessariamente porque tem uma perda de performance se a sua pagina tem um domNode grande.

Aqui tem esse codigo rodando online: http://jsfiddle.net/GnMrR/

//Daniel

P

Cara, valeu, a funcao funcionou legal.

So preciso agora jogar pra outro elemento html que nem é um text field, mas uma linha de tabela, uma imagem mesmo.

Eu to tentando algumas coisas aqui, valeu mesmo :slight_smile:

F

e também só pra deixar avisado, acredito que o motivo de realmente não acontecer nada é pq no onblur voce dizia

onblur="mostraTotal(this.value)";

porém a sua função no script não recebia nenhum parâmetro

function mostraTotal(???????){
}

O que eu concluo com isso? Que não funcionou pois ele procurava uma função que recebia um valor por parâmetro porém não tinha.

P

Bom, como eu queria na verdade usar um terceiro elemento html, acabou ficando um negocio diferente, mas que consegui terminar com ajuda de vocês. Valeu.

Pra facilitar a busca de alguem que ache isso aqui depois, vou postar tudo agora.

Esse é o elemento html onde o usuário vai digitar um valor:

<td> <input  id = "valorid" onblur="mostraTotal('valorid','valorid2');" class="caixa_texto" style="width:50px;" type="text" name="extras" value="0"> </td>

Aqui, é onde deve aparecer o novo valor, com base na entrada fornecida:

<td align="right" id="valorid2" ><h3> 00,00	</h3></td>

Esse é o script:

<script type="text/javascript" >

   function mostraTotal(input,input2) {
   var valorUnitario = 15.00;
   var input = document.getElementById(input);
   var valor =  input.value;

   valor *= valorUnitario;

   input2 = document.getElementById(input2).innerHTML = "<h3>"+valor+",00</h3>";


   }
</script>
Criado 17 de setembro de 2012
Ultima resposta 19 de set. de 2012
Respostas 5
Participantes 4