Ir para conteúdo

POWERED BY:

Arquivado

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

guitanure

copiar de um campo para outro

Recommended Posts

olá galera boa tarde tenho um problema e creio que seja simples para os senhores

quero copiar parte de um campo para outro ou seja tenho o campo nome

 

"<strong>Nome*</strong><br />" & _

"<input type=""text"" name=""xnome"" id=""xnome"" maxlength=""100"" width: 500px;"" />" & _

 

e tenho o campo email

 

"<strong>E-mail</strong><br />" & _

"<input type=""text"" name=""xemail"" id=""xemail"" maxlength=""60"" width: 157px;"" />" & _

 

ambos estão na mesma tela de cadastro, eu preciso que

ao digitar o nome COMPLETO ele pegue apenas o primeiro nome e coloque no campo email

 

sou extremamente leigo em asp, quem puder me ajudar com exemplo agradeço muito

 

abraços

 

 

 

estou lendo sobre o onblur, mas não sei como utilizá-lo é desta maneira mesmo? como fazer isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, isso pode ser feito com Javascript. Você devia ter postado na área de Javascript do fórum.

 

Ao meu ver:

  • Primeiro você tem que estabelecer em que momento o segundo campo será preenchido. Se é quando o primeiro perder o foco, se é ao mesmo tempo que preencher o primeiro, etc...
    Assim será possível determinar qual evento do primeiro campo vai invocar um código Javascript
  • Daí você escrever um código Javascript na sua página pra fazer o preenchimento:
    <head> <!-- GERALEMTNE COLOCA-SE OS CÓDIGOS JAVASCRIPT NESTA SESSÃO DA PÁGINA -->
      <script type="text/javascript" language="javascript">
        function PreencherEmail() {
          var form = document.getElementById("id_do_teu_form");
          var elementoEmail = form1.xemail;
          var sNome = form1.xnome.value;
    
          elementoEmail.value = sNome.substing(0, (sNome.indexOf(" ")-1));
        }
      </script>
    </head>
  • Então você coloca no elemento Nome a invocação do código:
    "<strong>Nome*</strong><br />" & _
    "<input type=""text"" name=""xnome"" id=""xnome"" maxlength=""100"" width: 500px;"" onblur=""javascript:PreencherEmail();"" />" & _

Tenta aí, vê se funciona, qualquer dúvida postaí.

Compartilhar este post


Link para o post
Compartilhar em outros sites

faça uma simples concatenção de variáveis, dá um request nas variáveis no campo:

 

<%

 

varnome="Alexandre"

varemail="xan@teste.com"

varcompleto=Varnome & " " & varemail
response.write(varcompleto)

%>

 



Compartilhar este post


Link para o post
Compartilhar em outros sites

meu caro pedro, eu começei agora com asp clássico e pelo fato de nunca ter visto javascript no sistema não imaginei que pudesse ser de tal forma, está um pouco dificil a adaptação do código porque nem as tags HTML tem no arquivo .asp, e o que seria o id do form???

 

vou tentar dessa forma com o javascript até eu conseguir uma outra forma para resolver, mas esse código está complexo

 

xanburzun eu não posso criar uma constante porque a variável vai ser preenchida em tempo de execução ou seja

eu tenho 2 text e assim que o usuário der ENTER ou TAB ou clicar fora do primeiro text ele automaticamente vai pegar o que ta escrito

e colocar no segundo text com o final @email.com

 

agradeço novamente a atenção dos senhores, e qualquer ajuda é bem vinda

Compartilhar este post


Link para o post
Compartilhar em outros sites

neste caso use como mencionado acima um js para pegar o evento onblur e faça a concatenação normal

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não tem como eu criar uma função em que uma variável receba o conteúdo do campo nome, sem precisar utilizar javascript?

eu não to conseguindo dar nem meio passo com isso sou muito leigo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo, eu não vejo outra forma de fazer isso sem Javascript.

Pra você fazer isso com ASP puro, você teria que fazer um post na página para pegar o valor do primeiro campo e colocar no segundo. E isso eu acho que fica muito ruim.

 

Eu estou percebendo que o cenário tá um pouco mais complexo. Você podria postar aqui o fonte completo da página para eu entender melhor?

Essa questão das tags html seria interessante entender. Não é anormal isso mas acho que vai influenciar na solução.

 

 

É fato que você vai ter que chamar uma função Javascript no evento onblur do element text do nome:

"<input type=""text"" name=""xnome"" id=""xnome"" maxlength=""100"" width: 500px;"" onblur=""javascript:PreencherEmail();"" />" & _

 

E em algum lugar você vai ter que colocar o código da função Javascript, que vai ser parecida com o que eu postei aqui.

Funções são funções em qualquer linguagem, seja Javascript, ASP ou qualquer outra.

 

O código Javascript geralmente é colocado entre as tags <head> e </head>.

Mas, se for o caso, pode ser colocado em qualquer lugar da página.

 

Uma dica legal para começar trabalhar com Javascript é usar "alerts":

    function PreencherEmail() {
      // alert de teste
      alert("aqui exibe uma mensagem de teste");

      var form = document.getElementById("id_do_teu_form");
      var elementoEmail = form1.xemail;
      var sNome = form1.xnome.value;

      elementoEmail.value = sNome.substing(0, (sNome.indexOf(" ")-1));
    }

 

id do form é o valor que fica dentro do atributo "id" do elemento <form>. Exemplo:

<form name="formCadastro" id="frmCad" method="post" action="pagina.asp">

...elementos

<p><input type="text" />

<p><input type="submit" />

</form>

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom consegui fazer chamar a função javascript, mas não está preenchendo o campo email o que estou fazendo errado???

 

<script type="text/javascript" language="javascript">
function PreencherEmail() {
var form = document.getElementById("fcolaborador");
var elementoEmail = form1.xemail;
var sNome = form1.xnome.value;

elementoEmail.value = sNome.substing(0, (sNome.indexOf(" ")-1));
}
</script>

 

OBS: ele está executando a função corretamente, coloquei um alert la dentro e funcionou, so q nao preenche o text email

 

 

response.write "<form action=""" & hospedagem & "processamento/insert/i_colaborador.asp"" method=""post"" id=""fcolaborador"" onreset=""javascript:reseta_cor_form('fcolaborador', ''); setTimeout('cltpj_colaborador();', 500);"" onsubmit=""return valida_colaborador();"" class=""oculto"" accept-charset=""utf-8;"">" & _

Compartilhar este post


Link para o post
Compartilhar em outros sites

<script type="text/javascript" language="javascript">
function PreencherEmail() {
var form = document.getElementById("fcolaborador");
var elementoEmail = form.xemail;
var sNome = form.xnome.value;

elementoEmail.value = sNome.substing(0, (sNome.indexOf(" ")-1));
}
</script>

 

ainda NÂO funcionou =/

 

A falta de um debug rebenta

Compartilhar este post


Link para o post
Compartilhar em outros sites

Onde você colocou o alert que não funcionou?

Coloque vários e veja até onde está funcionando:

<script type="text/javascript" language="javascript">
    function PreencherEmail() {
      alert("incio");

      var form = document.getElementById("fcolaborador");
      
      alert("id do form: " + form.id);

      var elementoEmail = form.xemail;

      alert("elemento Email: " + elementoEmail.name);

      var sNome = form.xnome.value;

      alert("elemento Nome: " + form.xnome.name);

      elementoEmail.value = sNome.substing(0, (sNome.indexOf(" ")-1));
    }
  </script>

Compartilhar este post


Link para o post
Compartilhar em outros sites

copiei e colei seu código e mandou todos os alertas corretamente, só que ainda não esta preenchendo o campo email

 

ja entendi é que eu coloquei os alertas como .value e nao como .nome

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas lançou todos os alerts com valor depois do ":"?

 

faça esse teste, force um valor fixo no email:

<script type="text/javascript" language="javascript">
    function PreencherEmail() {
      alert("incio");

      var form = document.getElementById("fcolaborador");
      
      alert("id do form: " + form.id);

      var elementoEmail = form.xemail;

      alert("elemento Email: " + elementoEmail.name);

      var sNome = form.xnome.value;

      alert("elemento Nome: " + form.xnome.name);

      elementoEmail.value = "Valor fixo";//sNome.substing(0, (sNome.indexOf(" ")-1));
    }
  </script>

Compartilhar este post


Link para o post
Compartilhar em outros sites

pois era isso mesmo

 

<script type="text/javascript" language="javascript">
function PreencherEmail() {
var form = document.getElementById("fcolaborador")
var elementoEmail = form.xemail;
var sNome = form.xnome.value;
elementoEmail.value = sNome;
}
</script>

 

resolvido, muito obrigado meu amigo e desculpa por te tomar tanto tempo

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.