Jump to content


Photo

Erro ? Onsubmit="return False; Cadastrar();"


  • Faça o login para participar
14 replies to this topic

#1 pgnall

pgnall

    Enable

  • Usuários
  • 383 posts
  • Sexo:Masculino
  • Localidade:http://eduardo.sganzerla.net

Posted 26/08/2006, 21:37

Eai pessoal, to criando um formulário de cadastro de uma newsletter...
Eu to fazendo isso em Ajax, mas agora a pouco estava pensando em quem não usa o JavaScript ativado, então estou criando o formulário pra que esses também possam usar, mas está acontecendo um erro, não funciona nada agora =/

Meu código:
<form action="cadastraNewsletter.php" onsubmit="return false; cadastrar();" target="_blank" method="get" enctype="application/x-www-form-urlencoded">

Eu queria bloquear o form, mas enviar o Ajax...

Valeu
Eduardo Sganzerla
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀


www.Eu Sei Escrever.com.br - Adote esta campanha!

#2 jeanpaulo5

jeanpaulo5

    ....

  • Usuários
  • 189 posts
  • Sexo:Não informado
  • Localidade:Rj - Rio de Janeiro

Posted 27/08/2006, 00:30

Ae, só pra me ajudar a entender.
Pq o return false ?
onsubmit="return false; cadastrar();"



#3 pgnall

pgnall

    Enable

  • Usuários
  • 383 posts
  • Sexo:Masculino
  • Localidade:http://eduardo.sganzerla.net

Posted 27/08/2006, 09:07

pra não enviar o formulário...
Eduardo Sganzerla
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀


www.Eu Sei Escrever.com.br - Adote esta campanha!

#4 Alex Hiroshi

Alex Hiroshi

    Super Veterano

  • Ex-Admins
  • 4923 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP

Posted 27/08/2006, 09:13

onsubmit="return Cadastrar()". Depois coloca um return false na função Cadastrar().
Fórum WMO - Equipe de Desenvolvimento / Banco de Dados - Ex-Administrador

#5 pgnall

pgnall

    Enable

  • Usuários
  • 383 posts
  • Sexo:Masculino
  • Localidade:http://eduardo.sganzerla.net

Posted 27/08/2006, 11:40

Ótimo, valeu cara
Eduardo Sganzerla
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀


www.Eu Sei Escrever.com.br - Adote esta campanha!

#6 pgnall

pgnall

    Enable

  • Usuários
  • 383 posts
  • Sexo:Masculino
  • Localidade:http://eduardo.sganzerla.net

Posted 30/08/2006, 18:49

tava funcionando, mas agora percebi que o iE da erro (pra variar)...

existe algum outro modo pra mim fazer isso?
Valeu
Eduardo Sganzerla
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀


www.Eu Sei Escrever.com.br - Adote esta campanha!

#7 Alex Hiroshi

Alex Hiroshi

    Super Veterano

  • Ex-Admins
  • 4923 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP

Posted 30/08/2006, 19:03

Qual erro?
Fórum WMO - Equipe de Desenvolvimento / Banco de Dados - Ex-Administrador

#8 pgnall

pgnall

    Enable

  • Usuários
  • 383 posts
  • Sexo:Masculino
  • Localidade:http://eduardo.sganzerla.net

Posted 30/08/2006, 19:06

A função só é chamada uma vez...

[ UPDATE ]
Agora estou com uma função que chama o ajax em uma fila...
Se coloco o return false na função executada no ie funciona, no firefox não...
Se coloco na função que chama pra fila no ie continua funcionando, mas no firefox funciona só uma vez...

Valeu

Edição feita por: pgnall, 30/08/2006, 19:32.

Eduardo Sganzerla
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀


www.Eu Sei Escrever.com.br - Adote esta campanha!

#9 savior

savior

    Campanha [codebox], use ou morra :D

  • Usuários
  • 1229 posts
  • Sexo:Masculino
  • Localidade:Curitiba, PR - Brasil
  • Interesses:Na vida ;P

Posted 01/09/2006, 11:12

eu sempre faço isso no evento onsubmit e dá certo O.o

ex:
<form name="form" action="form.php" onsubmit="return cadastrar(this);">
</form>

dae no javascript fica assim:

function cadastrar(form) {
//Faz as coisas necessárias
ajax = new Ajax.Updater(
						div,
						url,
						{
							method: 'get',
							parameters: pars,
							onComplete: function(ex) { alert(ex.responseText);} //exemplo só de ajax
return false;
}

sempre funciona assim pra mim O.o

posta ae como vc escreveu a função para ver se podemos lhe ajudar ;)

[lastfm] [blog]

Campanha codebox: use-a ou morra!
bfmaster_duran[at]yahoo.com.br


#10 pgnall

pgnall

    Enable

  • Usuários
  • 383 posts
  • Sexo:Masculino
  • Localidade:http://eduardo.sganzerla.net

Posted 01/09/2006, 12:45

Não sei pq ta acontecendo então...
No firefox fazo processo várias vezes, mas no ie, tenta uma vez, se não logar não tenta mais...

Meus codigos:

login.php

<div id="login">
		<img src="logo.jpg">
		
		<fieldset>
			<div class="titulo">ÁREA RESTRITA</div>
			<div id="status"><? if(isset($_GET['erro'])) echo "Nome de usuário ou senha incorreto."; ?></div>
			
			<form action="logar.php" method="post" enctype="application/x-www-form-urlencoded" onsubmit="return logar();">
				<label for="usuario">Usuario:</label>
					<input type="text" name="usuario" />
				<label for="senha">Senha:</label>
					<input type="password" name="senha" />
				<label> </label>
					<input type="submit" value="Logar" class="botao" />
			</form>
		</fieldset>
	</div>

login.js

function	logar(){
	var	usuario	=	document.forms[0].usuario.value;
 	var	senha 	=	document.forms[0].senha.value;

	Ajax.onreadystatechange = function() {
		div		=	document.getElementById("status");

		if(Ajax.readyState	==	1){
			div.innerHTML	=	"<b>Aguarde, Verificando...</b>";
		}else if(Ajax.readyState == 4){
			if(	Ajax.responseText	==	'1'	){
				div.innerHTML	=	"Nome de usuario ou Senha incorreto.";
			}else if( Ajax.responseText == '2'	){
				location.href = "logado.php";
			}
		}
	}

	Ajax.open("POST","logar.php?from=Ajax", true);
	Ajax.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	Ajax.send("usuario="+ usuario +"&senha="+ senha);

	return false;
}


Valeu
Eduardo Sganzerla
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀


www.Eu Sei Escrever.com.br - Adote esta campanha!

#11 savior

savior

    Campanha [codebox], use ou morra :D

  • Usuários
  • 1229 posts
  • Sexo:Masculino
  • Localidade:Curitiba, PR - Brasil
  • Interesses:Na vida ;P

Posted 02/09/2006, 15:53

Eu pra ajax uso o protoype.js, um framework mto bom em ajax =)

Mas assim, isso não devia estar antes de "Ajax.onreadystatechange = function() {" ?
Ajax.open("POST","logar.php?from=Ajax", true);
	Ajax.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

Porque pela lógica, você tem que abrir o documento antes de pegar a resposta dele ... no meu ver é isso ;S

[lastfm] [blog]

Campanha codebox: use-a ou morra!
bfmaster_duran[at]yahoo.com.br


#12 pgnall

pgnall

    Enable

  • Usuários
  • 383 posts
  • Sexo:Masculino
  • Localidade:http://eduardo.sganzerla.net

Posted 02/09/2006, 19:31

Não, isso é mais uma questão de organização, pq ele só vai executar o onreadystatechange depois que readyState == 1...
Senão o send tb deveria ser antes, e o send antes causa erro...
Eduardo Sganzerla
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀


www.Eu Sei Escrever.com.br - Adote esta campanha!

#13 pgnall

pgnall

    Enable

  • Usuários
  • 383 posts
  • Sexo:Masculino
  • Localidade:http://eduardo.sganzerla.net

Posted 06/09/2006, 22:10

Por favor alguém me da uma ajuda...

Preciso entregar esse sistema até sexta-feira, e só encontrei uma solução: tirar o Ajax =/
Eduardo Sganzerla
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀


www.Eu Sei Escrever.com.br - Adote esta campanha!

#14 Alex Hiroshi

Alex Hiroshi

    Super Veterano

  • Ex-Admins
  • 4923 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP

Posted 07/09/2006, 06:55

Não tenta mais ou retorna o mesmo erro? Não está ficando no cache a sua ação?
Fórum WMO - Equipe de Desenvolvimento / Banco de Dados - Ex-Administrador

#15 pgnall

pgnall

    Enable

  • Usuários
  • 383 posts
  • Sexo:Masculino
  • Localidade:http://eduardo.sganzerla.net

Posted 07/09/2006, 10:57

Eu não acredito...

Eu só tinha que colocar o "Open" e os "setRequestHeader" antes do onreadystatechange o.O

Valeu
Eduardo Sganzerla
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀


www.Eu Sei Escrever.com.br - Adote esta campanha!




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq