Ir para conteúdo

Arquivado

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

marcelobbt

Mudar valor de campo input do tipo texto ao selecionar campo radio

Recommended Posts

Estou criando um form e queria ao selecionar uma determinada opção no radio, ele alterar o valor num campo do tipo texto.

 

Tentei fazer algo, mas não está funcionando alguém pode me dar uma ajuda? Abaixo o código:

<script>
//adiciona ao total
	function adicionatotal() {
		var $custo2 = document.getElementById('custo2');
						
		var $tipo = document.getElementById('tipoinscricao');
				
		if (document.getElementById(tipoinscricao).value = "Seminário") {
			$custo2.value = parseInt 500;		
		}
		if (document.getElementById(tipoinscricao).value = "Curso") {
			$custo2.value = parseInt 500;		
		}
	}
</script>

<form ...>
    <input type="radio" name="tipoinscricao" id="tipoinscricao" value="Seminário" onclick="adicionatotal()>    
    <input type="radio" name="tipoinscricao" id="tipoinscricao" value="Curso" onclick="adicionatotal()>
    <input type="text" id="custo2" name="custo2" value="0" />
</form>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Algumas coisas que você precisa ver:

Um sinal de igual "=" é usado para atribuir valor. Para comparar valor, que é o seu caso, na linha 8 e 11, use dois iguais "==".
Nos dois "if" você usa um getElementById pegando o tipoincricao, que seria uma variável que não existe no contexto. Outra coisa é que essa parte do código é a mesma coisa que você fez na variável $tipo (linha 6), ou seja, não faz muito sentido você pegar o elemento para depois não usar. Mesmo trocando isso, não daria certo. Uma regra é que não exista mais de uma elemento HTML com o mesmo ID na mesma página. Então troque os ID's dos seus campos (tipoinscricao).

O que você pode fazer para melhorar um pouco o código é passar como referência para a função o próprio elemento clicado:

onclick="adicionatotal(this)"

function adicionatotal(t) { /*...*/ }

Assim você compara os valores no "if"

if (t.value = "Seminário") { /* ... */ }

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pelas dicas. Já estava no meio do caminho, mas suas dicas realmente clarearam tudo.

 

Abaixo o script da solução:

<script>
	//adiciona ao total
	function adicionatotal(t) {
		var $custo2 = document.getElementById('custo2');
		var $t = t;
		if ($t.value == "Seminário") {
			$custo2.value = 400;
		}
		if ($t.value == "Curso") {
			$custo2.value = 100;
		}
	}
</script>
 
<form ...>
<input type="radio" name="tipoinscricao" id="tipoinscricao1" value="Seminário" onclick="adicionatotal(this)>
<input type="radio" name="tipoinscricao" id="tipoinscricao2" value="Curso" onclick="adicionatotal(this)>
<input type="text" id="custo2" name="custo2" value="0" />
</form>

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.