Alimentando um campo de texto através de um select

Agência OFF, desenvolvimento de soluções web para as Agências Digitais

Simples script usando JavaScript, para alimentar um campo “text” através de um campo “select”.
Criada uma função alimentarCampo que recebe o valor dos campos do formulário através do metodo “getElementById” com a interação .value


<html>
<head>
<script type="text/javascript">
	function alimentarCampo() {
		var minhaLista = document.getElementById("minhaLista");
		document.getElementById("campoReceber").value = minhaLista.options[minhaLista.selectedIndex].value;
	}
</script>
</head>
<body>
<form name="Formulario">
Selecione seu Browser:
<select id="minhaLista" name="campo_selecione" onchange="alimentarCampo();">
  <option value="001 Campo do Internet Explorer a Evolução">Internet Explorer</option>
  <option value="002 Campo do Firefox a Evolução">Firefox</option>
  <option value="003 Campo do Netscape a Evolução">Netscape</option>
  <option value="004 Campo do Opera a Evolução">Opera</option>
</select>
<p>Descrição do Browser: <input type="text" id="campoReceber" name="campo" size="50"></p>
</form>
</body>
</html>

Resumo do Código:
Linha:

var minhaLista = document.getElementById("minhaLista");

A variável minhaLista é alimentada através do “ID” do campo “select” que é puxado pelo parâmetro document.getElementById citado acima.

Linha:

document.getElementById("campoReceber").value = minhaLista.options[minhaLista.selectedIndex].value;

No campo do tipo “text” no formulário temos uma “ID” chamada campoReceber que receberá o valor do campo de “select” selecionado pelo usuário através do parâmetro “.options” citado no código acima, pegando assim pelo parâmetro “.value” o valor do campo “option” exposto no “select”.

Linha:

<select id="minhaLista" name="campo_selecione" onchange="alimentarCampo();">

E por final chamamos a função criada em JavaScript pelo método “onchange” do formulário.

 

Dúvidas é só citar!!

Acesse também: Webly

Agência OFF, desenvolvimento de soluções web para as Agências Digitais


8 Respostas para Alimentando um campo de texto através de um select

  1. Caro amigo

    Preciso fazer mais ou menos como explicou o Alimentando um campo de texto através de um select , com a diferença que ao invés do campo texto, seria um textarea, onde iria sendo incrementado cada item selecionado em uma lista alimentando o campo textarea.

    É uma lista de pedidos que preciso fazer, com vários itens, sendo que os intens selecionados aliementa um campo textarea onde será disparado por e-mail após o preenchimento.

    Obrigado pela atenção!

  2. é só mudar de campo text para campo textarea, conservando as ID
    < textarea id="campoReceber">

  3. Parabéns Ted, legal hehehehe. Abraços.

  4. muito bom seu expemplo, eu gostaria de alterar o class do campo pois é atraves do class que altero a mascara do campo, o que quero é tipo a pessoa seleciona cnpj e o campo fica com mascara de cnpj se selecionar cpf o campo fica com mascara de cpf

  5. Preciso de algo parecido, mas necessariamente assim… Meu problema é o seguinte:
    Tenho um teste on line que calcula o resultado automaticamente em determinado campo. Preciso resgatar esse valor no campo acima para que o visitante digite seus dados e envie para tabulação…

  6. regata o valor do campo assim

    var minhaLista = document.getElementById(“campo_calculado”);
    document.getElementById(“campoReceber”).value = minhaLista.value;

  7. TedK, muito bom seus scripts, funcionam beleza, mas assim..
    Como faria para alimentar um textarea conforme a seleção do combo, só que ambos carregados dinamicamente com php/mysql, eu tentei com esse aqui:

    $(document).ready(function(){
    $(“select[name='msgTitulo']“).change(function(){
    $(“input[name='msgTexto']“).val(‘Carregando Mensagem…’);
    $.getJSON(
    ‘../editorim/functionPgseguro.php’,
    {idMsg: $(this).val()},
    function(data){
    $.each(data, function(i, object){
    $(“input[name='msgTexto']“).val(obj.msgTexto);
    });
    });
    });
    });

    e com essa parte em php :

    0 )
    {
    while( $dados = mysql_fetch_assoc( $query ) )
    {
    $opt .= ”.$dados['msgTitulo'].”;
    }
    }
    else
    $opt = ‘Nenhuma mensagem cadastrada’;

    return $opt;
    }

    /**
    * função que devolve em formato JSON os dados do cliente
    */
    function retorna( $id=null )
    {
    $id = (int)$id;

    $sql2 = “SELECT * FROM mensagens “;
    if( $id != null )
    $sql2 .= “WHERE idMsg = {$id} “;
    $query = mysql_query($sql2);

    $json = ”;
    if( mysql_num_rows($query) > 0 )
    {
    while($dados = mysql_fetch_assoc($query))
    {
    $json .= “{$dados['msgTitulo']}, {$dados['msgTexto']}”;
    }
    }else
    $json = ‘endereco: não encontrado’;

    return $json;
    }

    /* só se for enviado o parâmetro, que devolve o combo */
    if( isset($_GET['idMsg']) )
    {
    echo retorna( $_GET['idMsg'] );
    }
    ?>

    mas no input só aparece a mensagem “Carregando mensagem…”, ou seja não mostra o resusltado da consulta ao banco,
    fiz o teste no firebug e ele mostra os resultados corretamente, só não mostra no input ou textarea, será que vc pode me ajudar…
    Valeu

  8. Obrigado, era exatamente o que eu estava precisando.
    Abraço.

Deixe seu Comentário