Ir para conteúdo

Arquivado

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

Ronaldo Bueno

onChange não funciona

Recommended Posts

Amigos, boa noite, e estou precisando de uma mãozinha dos feras daq.

 

Primeiramente quero pedir desculpas se postei no lugar errado.

 

Acontece o seguinte, estou tentando fazer um select onde após escolher um nome que aparece dentro, queria que ele mostrasse sozinho o tel e cel em caixa de texto, o qual já travei.

 

Só que quando clico em um nome aparece a palavra "undefined" nas caixas de texto.

 

o que estou fazendo de errado ? alguém poderia me dar uma ajuda básica. Segue abaixo o código simples.

 

<select name="nome" id="nome" onChange="form1.tel.value=this.options[selectedIndex].tel;form1.cel.value=this.option

s[selectedIndex].cel">

 

e as caixas de textos estou colocando normalmente;

 

<input name="tel" id="tel" type="text" value="tel" size="15" maxlength="50" disabled="disabled">

coloquei o value proposital (para ver se mudava) e disabled.

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta:

document.form1.tel.value=this.options[selectedIndex].tel; document.form1.cel.value=this.options[selectedIndex].cel

 

 

 

 

Movido de ASP http://forum.imasters.com.br/public/style_emoticons/default/seta.gif Javascript/DHTML

Compartilhar este post


Link para o post
Compartilhar em outros sites

primeiro, obrigado por me alertar anteriormente, segundo obrigado tb por mover (assim já sei dá próxima) e sobre o erro, ainda continua mesmo colocando document.

 

se souber de mais alguma coisa, agradeço, já tentei de tudo inclusive fazer com função e nada ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Testado e funcionado no IE 7.

<form name="form1">
<select name="nome" id="nome" onchange="document.form1.tel.value=this.options[selectedIndex].value;">
<option value=""></option>
<option value="1">1</option>
<option value="2">2</option>
</select>

<input name="tel" id="tel" type="text" value="tel" size="15" maxlength="50" disabled="disabled">
</form>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hargon, não sei porque, mas não funcionou (agora fica em branco) vou colocar o código como esta ok ?

 

1 abro a conexão

2 faço a pesquisa

Recordset1.Open "select nome,tel,cel from clientes ORDER BY nome" , Conexao, 1, 3

3 select

<select name="clientes" id="clientes" onChange="form1.tel.value=this.options[selectedIndex].value;form1.cel.value=this.opti

ons[selectedIndex].value">

4 preencho o select

do while not Recordset1.eof

%>

<option> <%=Recordset1(0)%> </option>

<% Recordset1.movenext

loop

%>

5 text box

<input name="tel" id="tel" type="text" value="tel" size="15" maxlength="50" disabled="disabled">

Compartilhar este post


Link para o post
Compartilhar em outros sites

Posta o HTML que foi gerado, desde a tag <form> até a tag </form>.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hargon, tem várias páginas iguais só muda o banco e o tipo de dados ok ? mas fiz exatamente o que pediu. obrigado por enquanto, isso esta me deixando com dor de cabeça.

 

<form method="post" action="<%=MM_editAction%>" name="form1" onSubmit="return CheckForm();">

Set Conexao = Server.CreateObject("ADODB.Connection")

Conexao.Open "Driver={MySQL ODBC 3.51 Driver};SERVER=localhost;uid=aaaaaaaa;pwd=aaaaaaaa;database=aaaaaaaaaa"

Set Recordset1 = Server.CreateObject("ADODB.RecordSet")

Recordset1.Open "select nome,plano,tipo from pacientes ORDER BY nome" , Conexao, 1, 3

%>

<select name="paciente" id="paciente" onChange="document.form1.plano.value=this.options[selectedIndex].value; document.form1.tipo.value=this.options[selectedIndex].value">

<%

do while not Recordset1.eof

%>

<option> <%=Recordset1(0)%> </option>

<% Recordset1.movenext

loop

%>

</select>

<input name="plano" id="plano" type="text" value="plano" size="15" maxlength="50" disabled="disabled">

<input name="tipo" id="tipo" type="text" value="tipo" size="15" maxlength="50" disabled="disabled">

</form>

Compartilhar este post


Link para o post
Compartilhar em outros sites

<option value="<%=Recordset1(0)%>"> <%=Recordset1(0)%> </option>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hargon, desculpe tinha coloca o value em lugar errado, como disse tem várias páginas iguais.

 

Agora esta acontecendo que ele esta repetindo o nome nas duas text box.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Em option tem que informar o value.

 

Posta o HTML que está sendo gerado ao executar a página. Você postou o código que você criou...

 

 

-------

 

Editado:

 

Mas é isso mesmo... no evento onchange você mandou informar o mesmo valor nas duas input text.

Compartilhar este post


Link para o post
Compartilhar em outros sites

1) Você vai executar a página através do navegador.

2) Clica com o botão contrário do mouse sobre o formulário e manda exibir o código fonte.

3) Copie e cole aqui o que estiver lá.

Compartilhar este post


Link para o post
Compartilhar em outros sites

<html>

<head>

<title></title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<style>

body {font-family: arial}

h1 {color: #a0a0a0; font-size: 18px}

td {font-size: 10px}

</style>

<script language="JavaScript">

function txtBoxFormat(objForm, StrField, sMask, evtKeyPress) {

var i, nCount, sValue, fldLen, mskLen,bolMask, sCod, nTecla;

 

if(document.all) { // Internet Explorer

nTecla = evtKeyPress.keyCode; }

else if(document.layers) { // Nestcape

nTecla = evtKeyPress.which;

}

 

sValue = objForm[strField].value;

 

// Limpa todos os caracteres de formatação que

// já estiverem no campo.

sValue = sValue.toString().replace( "-", "" );

sValue = sValue.toString().replace( "-", "" );

sValue = sValue.toString().replace( ".", "" );

sValue = sValue.toString().replace( ".", "" );

sValue = sValue.toString().replace( ".", "" );

sValue = sValue.toString().replace( ".", "" );

sValue = sValue.toString().replace( "/", "" );

sValue = sValue.toString().replace( "/", "" );

sValue = sValue.toString().replace( "(", "" );

sValue = sValue.toString().replace( "(", "" );

sValue = sValue.toString().replace( ")", "" );

sValue = sValue.toString().replace( ")", "" );

sValue = sValue.toString().replace( ":", "" );

sValue = sValue.toString().replace( ":", "" );

sValue = sValue.toString().replace( " ", "" );

sValue = sValue.toString().replace( " ", "" );

fldLen = sValue.length;

mskLen = sMask.length;

 

i = 0;

nCount = 0;

sCod = "";

mskLen = fldLen;

 

while (i <= mskLen) {

bolMask = ((sMask.charAt(i) == "-") || (sMask.charAt(i) == ".") || (sMask.charAt(i) == "/"))

bolMask = bolMask || ((sMask.charAt(i) == "(") || (sMask.charAt(i) == ")") || (sMask.charAt(i) == ":") || (sMask.charAt(i) == " "))

 

if (bolMask) {

sCod += sMask.charAt(i);

mskLen++; }

else {

sCod += sValue.charAt(nCount);

nCount++;

}

 

i++;

}

 

objForm[strField].value = sCod;

 

if (nTecla != 8) { // backspace

if (sMask.charAt(i-1) == "9") { // apenas números...

return ((nTecla > 47) && (nTecla < 58)); } // números de 0 a 9

else { // qualquer caracter...

return true;

} }

else {

return true;

}

}

//Fim da Função Máscaras Gerais

</script>

<script language="JavaScript">

//verificar se o formulario foi preenchido corretamente

function CheckForm () {

 

//Inicia as Variaveis

var errorMsg = "";

 

//Checa o Nome

 

if (document.form1.paciente.selectedIndex==0){

errorMsg += "\n\tPaciente\t - Escolha o Paciente";

}

 

if (document.form1.tipoconsulta.selectedIndex==0){

errorMsg += "\n\tConsulta\t - Escolha o tipo de consulta";

}

 

if (document.form1.medicos.selectedIndex==0){

errorMsg += "\n\tMédicos\t - Escolha o Médico";

}

 

if (document.form1.convenios.selectedIndex==0){

errorMsg += "\n\tConvênios\t- Escolha o Convênio";

}

 

if (document.form1.dataconsulta.value == ""){

errorMsg += "\n\tData\t - Digite a data";

}

 

if (document.form1.horaconsulta.value == ""){

errorMsg += "\n\tHora\t - Digite a Hora";

}

 

if (document.form1.indicacao.value == ""){

errorMsg += "\n\tIndicação\t - Digite quem indicou";

}

 

if (document.form1.sintomas.value == ""){

errorMsg += "\n\tSintomas\t - Digite o(s) sintoma(s)";

}

 

//Se houver algum problema com o formulário ele indica

if (errorMsg != ""){

msg = "______________________________________________________________\n\n";

msg += "O registro não pode ser gravador porque há um erro com o formulário.\n";

msg += "Corrija o problema e clique em ENVIAR\n";

msg += "______________________________________________________________\n\n";

msg += "O(s) seguinte(s) campo(s) tem que ser(em) corrigido(s): -\n";

 

errorMsg += alert(msg + errorMsg + "\n\n");

return false;

}

 

return true;

}

</script>

</head>

<body bgcolor="#FFFFFF" text="#000000">

<form method="post" action="/sistema/consultorio/inserir.asp" name="form1" onSubmit="return CheckForm();">

<table align="center" width="674">

<tr valign="baseline">

<td nowrap align="right" colspan="4"><div align="center"><b>CADASTRO DE CONSULTÓRIO </b></div></td>

</tr>

<tr valign="baseline">

<td nowrap align="right" colspan="4"><div align="center"><b>Todos os campos são obrigatórios</b></div></td>

</tr>

<tr valign="baseline">

<td width="61" nowrap><div align="right"><b>Paciente:</b></div></td>

<td width="248" valign="baseline">

 

<select name="paciente" id="paciente" onChange="document.form1.plano.value=this.options[selectedIndex].text;document.form1.

tipo.value=this.options[selectedIndex].text;document.form1.numerocarteira.value=t

his.options[selectedIndex].text;document.form1.mesvalidade.value=this.options[sel

ectedIndex].text;document.form1.anovalidade.value=this.options[selectedIndex].tex

t">

 

<option> aaaaaaaaaaaaaaaa </option>

 

<option> bbbbbbbbbbbbbbb </option>

 

<option> Ronaldo Bueno </option>

 

</select></td>

<td width="97"><div align="right">Tipo da Consulta </div></td>

<td width="248"><select name="tipoconsulta" id="tipoconsulta">

<option>1ª Consulta</option>

<option>Retorno</option>

</select></td>

</tr>

<tr>

<td align="right" nowrap><div align="right"><b>Plano:</b></div></td>

<td><input name="plano" id="plano" type="text" value="plano" size="15" maxlength="50" disabled="disabled">

<input name="tipo" id="tipo" type="text" value="tipo" size="15" maxlength="50" disabled="disabled">

<td><div align="right"><b>Nº da Carteira:</b></div></td>

<td><input name="numerocarteira" id="numerocarteira" type="text" value="Nº da Carteira" size="15" maxlength="50" disabled="disabled">

<input name="mesvalidade" id="mesvalidade" type="text" value="Mês Validade" size="10" maxlength="50" disabled="disabled">

<input name="anovalidade" id="anovalidade" type="text" value="Ano Validade" size="10" maxlength="50" disabled="disabled"></td>

</tr>

<tr>

<td nowrap align="right"><b>Data da<br>

Consulta:</b></td>

<td><input name="dataconsulta" type="text" id="dataconsulta" onKeyPress="return txtBoxFormat(document.form1, 'dataconsulta', '99/99/9999', event);" value="01/03/2009" size="15" maxlength="10"></td>

<td><div align="right"><b>Hora da<br>

Consulta:</b></div></td>

<td><input name="horaconsulta" type="text" id="horaconsulta" onKeyPress="return txtBoxFormat(document.form1, 'horaconsulta', '99:99', event);" value="" size="15" maxlength="5"></td>

</tr>

<tr valign="baseline">

<td nowrap align="right"><b>Médico(a):</b> </td>

<td>

<select name="medicos" id="medicos">

 

<option> Antonio Pereira de Menezes </option>

 

<option> Dr. Raul Marino Jr. </option>

 

</select>

</label></td>

<td><div align="right"><b>Convênio:</b></div></td>

<td>

<select name="convenios" id="convenios">

 

<option> Adventista </option>

 

<option> AFRESP </option>

 

<option> ALLIANZ - SAUDE </option>

 

<option> Alvorecer </option>

 

<option> Assefaz </option>

 

<option> BANCO CENTRAL DO BRASIL </option>

 

<option> Bradesco </option>

 

<option> CABERJ </option>

 

<option> CABESP </option>

 

<option> Caixa Economica Federal </option>

 

<option> CENEN </option>

 

<option> CORREIOS </option>

 

<option> Fundação Pampulha de Assistência a Saúde </option>

 

<option> Golden Cross </option>

 

<option> Maritima </option>

 

<option> Medservice </option>

 

<option> OMINT </option>

 

<option> Prev Saúde </option>

 

<option> SABESPREV- SAUDE </option>

 

<option> UNIBANCO </option>

 

<option> Usiminas Sao Francisco Xavier </option>

 

<option> Volkswagem </option>

 

</select></td>

</tr>

 

<tr valign="baseline">

<td nowrap align="right"><b>

Indicação: </b></td>

<td>

<input name="indicacao" type="text" id="indicacao" value="" size="40" maxlength="50"></td>

<td><div align="right"><b>Sintomas:</b></div></td>

<td><input name="sintomas" type="text" id="sintomas" value="" size="40" maxlength="100"></td>

</tr>

 

<tr valign="baseline">

<td nowrap align="right"> </td>

<td colspan="3"><b>Observação:</b></td>

</tr>

<tr valign="baseline">

<td nowrap align="right"> </td>

<td colspan="3"><label>

<textarea name="prontuario" cols="80" rows="4" id="prontuario"></textarea>

</label></td>

</tr>

<tr valign="baseline">

<td nowrap align="right">

<div align="center"></div> </td>

<td nowrap align="right"><div align="left">

<input name="image" type=image src="../imagens/salvar.png" width="48" height="48">

</div></td>

<td nowrap align="right"> </td>

<td align="right" nowrap> </td>

</tr>

</table>

<input type="hidden" name="MM_insert" value="true">

</form>

</body>

</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deixe o onchange assim:

onchange="document.form1.tel.value=this.options[this.options.selectedIndex].value;document.form1.cel.value=this.options[this.options.selectedIndex].value"

O que eu mudei está em negrito.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Lex, obrigado por responder, mas continua mostrando o nome que eu seleciono em todas as caixas de texto, ele não mostra o tel e o cel da pessoa que esta cadastrado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

então é isso que eu quero, poderia me ajudar ?

 

ja faço a pesquisa antes com os dados, por isso que no select esta aparecendo os nomes que estão cadastrados ...

 

mas não sei por onde andar mais rsrssrsr.

 

obrigado

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.