Ir para conteúdo

POWERED BY:

Arquivado

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

lams

Java Script

Recommended Posts

Pessoal,

estou com um probleminha aqui, é o seguinte,

preciso chamar 3 funcoes de java script no meu botao com onclick...

 

2 funcoes são para datas (quando as datas são alteradas é realizado um insert no banco para registrar que alterou)

e a 3ª funcão é para realizar o update dos registros.

 

Então preciso fazer algo do tipo:

 

OnClick = "Verifica_DtPrevista();Verifica_DtProximaAtua();alter();"

 

mas caso ninguem mexa nas das datas, as funcoes:Verifica_DtPrevista();Verifica_DtProximaAtua(),

não fazem nada, a funcao alter() tem que rodas sempre, apos o click.

 

tentei algo do tipo:

 

onClick="if(Verifica_DtPrevista()||Verifica_DtProximaAtua()){alter();}"

 

mas ele roda a funcao mesmo sem mexer nas datas.

 

será que alguem poderia me dar um help?

 

valeuu

Compartilhar este post


Link para o post
Compartilhar em outros sites

Usa algo como:

 

function addEvent(obj, evType, fn)
{
   if (obj.addEventListener)
   obj.addEventListener(evType, fn, true);
   if (obj.attachEvent)
   obj.attachEvent("on" + evType, fn);
};//grabbed off web


window.onload = function(){//fires on page load
var b = document.getElementById('idDoButton');
addEvent(b, 'click', function(){
	try
	{
		Verifica_DtPrevista();
		Verifica_DtProximaAtua();
	}
	catch(e)
	{
		/*nothing*/
	}
	finally
	{
		alter();
	}

});

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

humm...

não manjo mto de java script...

preciso alterar alguma coisa nesse codigo?

 

aí como chamo ele..

no meu OnClick ficaria so assim:

 

 

Onclick="addEvent()" ????

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não muito,

Tira o evento Onclick da tag HTML, depois altere esta linha:

 

(...)
window.onload = function(){//fires on page load
var b = document.getElementById('idDoButton'); //<--- Aqui vai o ID do Botão HTML
addEvent(b, 'click', function(){
(...)

alterando a palavra idDoButton pelo ID do botão HTML (cuidado o nome DEVE estar entre as aspas)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não muito,

Tira o evento Onclick da tag HTML, depois altere esta linha:

 

(...)
window.onload = function(){//fires on page load
var b = document.getElementById('idDoButton'); //<--- Aqui vai o ID do Botão HTML
addEvent(b, 'click', function(){
(...)

alterando a palavra idDoButton pelo ID do botão HTML (cuidado o nome DEVE estar entre as aspas)

 

saquei....

nesse lance eu estou querendo tratas 2 campos data apenas, mas esse meu formulario tem outros campos,

que eu posso altera-lo sem influenciar nesse script, mas quando eu click em alterar ele esta executando os scripts sem tratalos..

 

veja minhas funcoes:

só pra ter uma noção...alterei alguns valores só por questao de segurança da info...

a outra funcao (alter()) só faz update

 

// ---CERTIFICA ALTERAÇÃO NO CAMPO PRÓXIMA ATUAÇÃO
function Verifica_DtProximaAtua()
{
<%
'----------------------------------------------------------------------
'----Busca registro cadastrado
sql3 = "SELECT campoFROM tabela Where campo= '" & valor & "' AND Dt_ProximaAtua ='" & sProxima & "' "
set rs = db.execute(sql3)
'----------------------------------------------------------------------

if rs.EOF = false then
%>
if (formulario.txtdtProxima.value != "<%=rs("campo")%>")
{
//alert("Data diferente da cadastrada!!!")
<%
'----------------------------------------------------------------------
'----Insere Acao na tb de Auditoria
sql2="INSERT INTO tabela (campo,campo, campo,campo) VALUES " &_
"('" & valor & "','" & valor& "',valor,'Alterou_DtProximAtua')" 
set rs = db.Execute (sql2)
'Response.Write sql2
'----------------------------------------------------------------------
%>

	if (document.formulario.Descricao.value == "")
		{
			alert("Favor inserir no campo log de atividades o motivo\n da alteração do campo Próxima Atuação. ")
			document.formulario.Descricao.focus()
			return false
			
		}
		return true;
}

<%
rs.MoveNext
end if

set rs = nothing
%>
return false;
window.location.reload()
}
//---FIM DA CERTIFICACAO  NO CAMPO  PRÓXIMA ATUAÇÃO

// ---CERTIFICA ALTERAÇÃO NO CAMPO DT_PREVISAO
function Verifica_DtPrevista()
{
<%
'----------------------------------------------------------------------
'----Busca registro cadastrado
sql = "SELECT campo FROM tabela Where campo = '" & valor& "' AND campo ='" & valor& "' "
set rs = db.execute(sql)
'----------------------------------------------------------------------

if rs.EOF = false then
%>
if (formulario.txtdtatendimento.value != "<%=rs("campo")%>")
{
//alert("Data diferente da cadastrada!!!")
<%
'----------------------------------------------------------------------
'----Insere Acao na tb de Auditoria
sql1="INSERT INTO tb_Ambiente_Telefonia_Demanda_Auditoria (campo,campo, campo,Acao) VALUES " &_
"('" & valor& "','" & valor & "',valor,'Alterou_DtPrevisao')" 
set rs = db.Execute (sql1)
'Response.Write sql1
'----------------------------------------------------------------------
%>

			if (document.formulario.Descricao.value == "")
		{
			alert("Favor inserir no campo log de atividades o motivo\n da alteração do campo Previsão de atendimento. ")
			document.formulario.Descricao.focus()
			//return false
			//alter() = false
			return false
		}
		return true;
}

<%
rs.MoveNext
end if

set rs = nothing
%>
return false;
window.location.reload()
}

//---FIM DA CERTIFICACAO  NO CAMPO DT_PREVISAO

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, não entendi o que você esta querendo fazer.

Você não espera que o código asp mesclado com o javacript só seja executado quando as funções forem chamdas, espera?

 

PS.: Não acho uma boa prática misturar asp com javascript, se isso não estiver bem 'comentado', você pode ter um monte de problemas depois.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, não entendi o que você esta querendo fazer.

Você não espera que o código asp mesclado com o javacript só seja executado quando as funções forem chamdas, espera?

 

PS.: Não acho uma boa prática misturar asp com javascript, se isso não estiver bem 'comentado', você pode ter um monte de problemas depois.

É o seguinte, tenho um formulario de cadastro.

nesse formulario, tenho 2 campos que se chamam Dt_Previsao (previsao de atendimento) e dt_proximaAtua( data proxima atuacao)

com o objetivo de realizar auditoria na pág.

fiz essas 2 funcoes, que fazem o seguinte:

quando o usuario for alterar uma dessas datas a funcao faz um select (em asp) pra ver se é diferente da data anterior

e for diferente ele registra em um tabela, pegando o login do cara,data e a ação (no caso a alteração do campo tal..)

 

entao, quando o cara clicar no botao alterar as funcoes (2 funcoes) fazem essa validaçã, certificando se houve mudanca em um

desses dois campos, e tambem se o cara modificar esses campos, a funcao obriga a nao deixar o campo de "log de atividade"

em branco, tipo pra ele justificar por que alterou as datas..

mas pode ser que ele altere só uma data, as duas, ou nenhuma das datas, mas só deve ser executado a funcao

caso ele mexa nesses campos...agora quando clica em alterar mesmo nao mexendo em nada da pg as funcoes entao sendo executadas..

 

sacou?

Compartilhar este post


Link para o post
Compartilhar em outros sites

lucas almeida, o problema é que o código em ASP é executado no carregamento da página, mesmo estando dentro das TAGs script. Resumindo, o que esta em ASP nas funções Verifica_DtProximaAtua e Dt_Previsao serão executadas sempre que a página for chamada.

 

Entendi sua intenção, validar os dados usando dados de um db, e depois fazer inserts(e ou uptadtes) sem recarregar a página... Isso ai tem nome, chama-se Ajax vá no forúm de ajax do site, leia alguns tópicos (e artigos) acho que vão te dar uma ideia de como fazer isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

lucas almeida, o problema é que o código em ASP é executado no carregamento da página, mesmo estando dentro das TAGs script. Resumindo, o que esta em ASP nas funções Verifica_DtProximaAtua e Dt_Previsao serão executadas sempre que a página for chamada.

 

Entendi sua intenção, validar os dados usando dados de um db, e depois fazer inserts(e ou uptadtes) sem recarregar a página... Isso ai tem nome, chama-se Ajax vá no forúm de ajax do site, leia alguns tópicos (e artigos) acho que vão te dar uma ideia de como fazer isso.

beleza então, vou dar uma lida sobre...

valeuu pela força!

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.