Ir para conteúdo

POWERED BY:

Arquivado

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

calexandrep

Mensagem de alerta para validação de campos

Recommended Posts

Olá pessoALL,

 

Eu estou tentando criar um mecanismo de validação de campo para inserção de dados em um BD, de forma que qdo um dado for incorreto seja mostrada uma caixa de mensagem. A rotina de validação está pronta, mas eu estou apanhando para criar a rotina que irá mostrar a caixa de mensagem.

 

Eu estou usando o Frontpage 2K com ASP/VB e Access 2K. Para criar a rotina que irá mostrar a caixa de mensagem eu tentei uma adaptação de uma extensão do Frontpage que avisa se algum campo do form está vazio antes de fazer a inclusão no BD. Essa extensão usa JavaScript.

 

Quero aproveitar para perguntar se existe um local expecífico para inserir uma rotina JavaScript...dentro do <body> para ser mais exato; ou se pode ser inserido em qualquer lugar, antes do <HTML> como eu fiz, por exemplo.

 

Vejam abaixo o meu código.

 

<% @Language = "VBScript" %><% Option Explicit %><!-- #include virtual = "/Inclusoes/adovbs.inc" --><!-- #Include virtual = "/Inclusoes/Conexao.asp" --><script Language="JavaScript" Type="text/javascript"><!-- Adaptação da Função FrontPage_Form1_Validator(theForm){	if (varMsg1 = True)	{		alert("Documento de identidade existente! Usuário já cadastrado.");		theForm.cx_DocId.focus();		return (false);	}	if (varMsg2 = True)	{		alert("Código de usuário existente! Favor Escolher outro código.");		theForm.cx_Usuario.focus();		return (false);	}	return (true);}//--></script><%'Recordset empresas para seleção da empresa.Dim recEmpresaSet recEmpresa = Server.CreateObject("ADODB.Recordset")recEmpresa.Source = "SELECT Empresas.IdEmpresa, Empresas.NomeEmpresa FROM Empresas WHERE NomeEmpresa = '" & Session("sNomeEmpresa") & "'"recEmpresa.ActiveConnection = conrecEmpresa.CursorType = 3 'adOpenStaticrecEmpresa.LockType = 1 'adLockReadOnlyrecEmpresa.Open()%><%'Inclusão de novo usuário.Dim varValidacaoDim varMsg1Dim varMsg2Dim recUsuarioSet recUsuario = Server.CreateObject("ADODB.Recordset")recUsuario.Source = "SELECT * FROM Usuarios"recUsuario.ActiveConnection = conrecUsuario.CursorType = 2 'adOpenDynamicrecUsuario.LockType = 2 'adLockPessimisticrecUsuario.Open()If Request("bt_Cadastrar") <> "" Then	subValidacao	If varValidacao Then		recUsuario.AddNew		recUsuario("IdEmpresa") = recEmpresa("IdEmpresa")		recUsuario("NomeUsuario") = Request("cx_Nome")		recUsuario("SobrenomeUsuario") = Request("cx_Sobrenome")		recUsuario("DocIdUsuario") = Request("cx_DocId")		recUsuario("CargoUsuario") = Request("cx_Cargo")		recUsuario("DeptoUsuario") = Request("cx_Depto")		recUsuario("TelefoneUsuario") = Request("cx_Telefone")		recUsuario("CelularUsuario") = Request("cx_Celular")		recUsuario("EmailUsuario") = Request("cx_Email")		recUsuario("CodigoUsuario") = Request("cx_Codigo")		recUsuario("SenhaUsuario") = Request("cx_Senha")		recUsuario.Update		Response.Redirect "Cadastro_3.asp"	End IfEnd IfSub subValidacao	varValidacao = False	While NOT recUsuario.EOF		If Request("cx_DocId") = recUsuario("DocIdUsuario") Then			varMsg1 = True			Exit Sub		End If		If Request("cx_Codigo") = recUsuario("CodigoUsuario") Then			varMsg2 = True			Exit Sub		End If		recUsuario.MoveNext	varValidacao = True	WendEnd Sub%><html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1252"><meta name="GENERATOR" content="Microsoft FrontPage 4.0"><meta name="ProgId" content="FrontPage.Editor.Document"><meta name="Microsoft Theme" content="capcons 1111, default"><meta name="Microsoft Border" content="b"></head><body><form method="POST" action="Cadastro_2.asp" name="FrontPage_Form1" onsubmit="return FrontPage_Form1_Validator(this)" language="JavaScript">  <p align="center"><img border="0" src="images/Header.gif"></p>  <div align="center">	<center><table border="0" width="600" cellspacing="10" cellpadding="0">  <tr>	<td width="100%" align="right" colspan="2">	  <h2 align="left">Cadastro On-Line</h2>	</td>  </tr>  <tr>	<td width="100%" align="right" colspan="2">	  <p align="left">Todos os campos devem ser preenchidos. Preencha com '-' os	  campos desconhecidos.	</td>  </tr>  <tr>	<td width="30%" align="right"><b>Empresa :</b></td>	<td width="70%"><%= recEmpresa("NomeEmpresa") %>	</td>  </tr>  <tr>	<td width="30%" align="right"><b>Nome :</b></td>	<td width="70%">		<!--webbot bot="Validation" S-Display-Name="Nome"		B-Value-Required="TRUE" -->		<input type="text" name="cx_Nome" size="30"></td>  </tr>  <tr>	<td width="30%" align="right"><b>Sobrenome :</b></td>	<td width="70%">		<!--webbot bot="Validation" S-Display-Name="Sobrenome"		B-Value-Required="TRUE" -->		<input type="text" name="cx_Sobrenome" size="30"></td>  </tr>  <tr>	<td width="30%" align="right"><b>Doc. Ident. :</b></td>	<td width="70%">		<!--webbot bot="Validation" S-Display-Name="Documento de Identidade"		B-Value-Required="TRUE" -->		<input type="text" name="cx_DocId" size="20">		<font size="2">Ex.: 12.345.678-9</font></td>  </tr>  <tr>	<td width="30%" align="right"><b>Cargo :</b></td>	<td width="70%">		<!--webbot bot="Validation" S-Display-Name="Cargo"		B-Value-Required="TRUE" -->		<input type="text" name="cx_Cargo" size="20"></td>  </tr>  <tr>	<td width="30%" align="right"><b>Departamento :</b></td>	<td width="70%">		<!--webbot bot="Validation" S-Display-Name="Departamento"		B-Value-Required="TRUE" -->		<input type="text" name="cx_Depto" size="20"></td>  </tr>  <tr>	<td width="30%" align="right"><b>Telefone :</b></td>	<td width="70%" align="center">		<p align="left"><!--webbot bot="Validation" S-Display-Name="Telefone"		B-Value-Required="TRUE" -->		<input type="text" name="cx_Telefone" size="20">		<font size="2">Ex.: (19) 3212-3456</font></p>	</td>  </tr>  <tr>	<td width="30%" align="right"><b>Celular :</b></td>	<td width="70%">		<!--webbot bot="Validation" S-Display-Name="Celular"		B-Value-Required="TRUE" -->		<input type="text" name="cx_Celular" size="20">		<font size="2">Ex.: (19) 8112-3456</font></td>  </tr>  <tr>	<td width="30%" align="right"><b>Email :</b></td>	<td width="70%">		<!--webbot bot="Validation" S-Display-Name="Email"		B-Value-Required="TRUE" -->		<input type="text" name="cx_Email" size="30"></td>  </tr>  <tr>	<td width="30%" align="right"><b>Código :</b></td>	<td width="70%" style="font-weight: bold"><!--webbot bot="Validation"	  S-Display-Name="Código" B-Value-Required="TRUE" --><input type="text"	  name="cx_Codigo" size="20"></td>  </tr>  <tr>	<td width="30%" align="right"><b>Senha :</b></td>	<td width="70%" style="font-weight: bold"><!--webbot bot="Validation"	  S-Display-Name="Senha" B-Value-Required="TRUE" --><input type="password"	  name="cx_Senha" size="20"></td>  </tr>  <tr>	<td width="30%" align="right"></td>	<td width="70%" style="font-weight: bold">		<input type="submit" value="Cadastrar" name="bt_Cadastrar"></td>  </tr></table>	</center>  </div></form> </body></html><%recEmpresa.Close()Set recEmpresa = Nothing%><%recUsuario.Close()Set recUsuario = Nothing%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso é feito basicamente via JS mesmo. O local semânticamente correto para colocar as funções JS é dentro da TAG HEAD de seu script.

 

Movido para JavaScript.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá pessoALL,Bom, obrigado pelas dicas...mas o meu problema persiste...eu acho que o problema está na sequência do meu código. Eu quero verificar se existe duplicidade do cadastro a ser incluído com dados existentes no BD. Para isso eu escrevi em VBScript uma rotina que faz esta verificação. Se der erro, esta rotina atribui uma variável (varMsg1 ou varMsg2) igual a TRUE. Veja no código postado a rotina "subValidacao".Só que para mostrar a caixa de mensagem de alerta, eu usei JavaScript. A condição em JS é se varMsg = TRUE, então mostra a mensagem. Bom, isso funciona? Quero dizer, JS consegue ler o valor de uma variável escrita em VBS?Valeu e até mais...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá pessoALL,Adriano, valeu pelos exemplos de JS, eu que não entendo muito de JS (quase nada), consegui aprender um pouco mais como funciona. Mas o meu problema continua...pelo o que eu pude perceber, todos os exemplos eram de verificação de preenchimento dos campos (vazio ou formato).No meu caso, esta verificação está funcionando...o problema está em uma segunda verificação (feita em ASP/VBScript) que compara o valor do campo com os valores existentes no BD. Se houver uma duplicidade, ele deve solicitar que o campo seja alterado.Eu acho que o problema está em fazer o JS checar o valor de uma variável atribuida pelo VBS. Mas é apenas um palpite... Alguém sabe me dizer se isso funciona? E como? Vejam o meu código completo no início desse post.Valeu....T+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi de novo,Eu achei no forum ASP um post sobre o problema inverso...usar uma variável atribuída em JS em uma rotina ASP. A solução encontrada foi a seguinte:<%var_total = "<script>document.write(valor_total)</script>"%>Baseado nessa informação eu tentei o seguinte:<script Language="JavaScript" Type="text/javascript"><!-- Código para alertar usuário sobre infos duplicadas.{if (<%=varMsg1%> == True){alert("Documento de identidade existente! Usuário já cadastrado.");FrontPage_Form1.cx_DocId.focus();return (false);}if (<%=varMsg2%> == True){alert("Código de usuário existente! Favor Escolher outro código.");FrontPage_Form1.cx_Usuario.focus();return (false);}return (true);}//--></script>Sendo que "varMsg1" e varMsg2" são variáveis atribuídas por uma rotina em ASP/VBScript... Mas não funcionou...alguma sugestão?Valeu...T+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá pessoALL,

 

Vou tentar resolver este problema de outra forma. Vou usar uma rotina em ASP para chamar o código em JS...assim:

 

<%

If varMsg = TRUE Then

chama JS

End If

%>

 

Bom, acho que assim vai...eu só não sei como exatamente escrever esse "chama JS"...alguém pode me dizer?

 

Valeu...T+

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.