Ir para conteúdo

POWERED BY:

Arquivado

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

haruan

[Resolvido] Validacao jquery+ajax

Recommended Posts

Ja usei muito o jquery, para checar se o campo esta vazio e talz,

e agora preciso usar ele para,

 

se o codigo existir na hora do cadastro, ele dar um return false, e avisar.

 

o codigo que eu fiz é esse aqui

 

$(".save").click(function()
                {
					var teste="";
                    // main details
                    if($("#code").val()!='')
                    {
                         $.post('ajax/equipmentType.php',{code:$(code).val()},function(resposta)
                            {
                                if ( resposta == 1) {
									teste='This code alredy exists.';
									$('#existe').html(teste);
									return false; // esse return false não funciona
								}
                            });
                     return false; // fora do post o return false funciona, mas eu nao consigo fazer as coisas de dentro da função do post passarem algo pra fora
                    }
					
                });

a funcao resposta esta retornando os itens corretamente, porque a minha div exibe na tela o 'This code already exists'.

 

tem alguma ideia de como, ou fazer o return false ou funcionar dentro do post, ou eu passar uma variavel de dentro do post pra fora, ou o nome da função certa do jquery pra eu conseguir fazer isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi haruan.

 

A função anônima que você cria no final da linha que tem $.post só é executada quando o request ajax termina (é o que chamamos que callback). Provavelmente é por isso que o return false dela não está fazendo sentido. Ele acontece depois do que você espera. Para dar certo o que você quer, a função anônima é que deve já tratar a sua variável "resposta" (ou chamar uma outra função passando este parâmetro. Por exemplo:

 

 

var tratarResposta = function(reposta) {
    if(resposta === 1) {
        $('#existe').html('This code already exists.');
    }
    else {
        $('#existe').html('This code does not exist.');
    }
};

$(".save").click(function(){
    var codeVal = $("#code").val();
    if(codeVal !== '') {
        $.post('ajax/equipmentType.php',{code: codeVal)},function(resposta){
            tratarResposta(resposta);
        });
    }
});

Não sei se entendi direito o seu problema. Espero que isso ajude.

 

Uma abraço...

Flávio

http://javascript.singuska.com

Compartilhar este post


Link para o post
Compartilhar em outros sites

Assim, eu quero que,

quando eu clique em salvar,

o jquery chame a função para checar se o codigo que eu inseri, ja existe ou nao no banco,

a função retorna 0 para não existe, e 1 para existe.

 

Se a função retornar 0, ok, ele roda o post,

se a função retornar 1, ele põe em uma div,

que o codigo já existe, e dá um return false para o post não rodar.

 

 

Vou tentar aqui o que você me passou.

depois te dou um retorno.

obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pesquisei por algumas horas hoje e chequei o seguinte,

desse jeito não dá pra fazer,

o mais próximo disso é fazer um onblur e criar um hiden input,

e esse é checado na hora que for feito o submit.

Compartilhar este post


Link para o post
Compartilhar em outros sites

haruan,

 

Era realmente mais complicado do que eu pensava. Além disso, o meu código continha alguns erros de sintaxe. Se eu entendi direito o seu problema o exemplo funcionando no link abaixo talvez possa te ajudar:

 

http://javascript.singuska.com/exemplos/haruan/

 

Se você não entrar nenhum valor o form não é enviado. Se você entrar exists ele não deixa passar e mostra a mensagem "This code already exists" (o service.php que eu montei simula a existência de um código). Qualquer outro dado entrado faz o formulário passar. Basicamente o código é este:

 

$(function(){

	var tratarResposta = function(resposta) {
	    
	    if(resposta === '1') {
	        $('#existe').html('This code already exists.');
                return;
   	    }
	    $('#submit').unbind('click').click();
	};
	
	$('#submit').click(function(event) {
		
    	    event.preventDefault();
	    var codeVal = $("#code").val();

	    if (codeVal !== '') {
	        $.post('service.php', {code: codeVal}, function(resposta){
		    tratarResposta(resposta);
		});	
	    }
	});
});

E este HTML:

 

<form action="http://javascript.singuska.com" method="post">
	<fieldset>
		<label>Code:</label>
		<input id="code" type="text" />
		<input id="submit" type="submit" />
	</fieldset>
</form>
	
<div id="existe"></div>

Dê uma olhada, se tiver alguma dúvida ou isso não resolver estamos aí.

 

Um abraço...

Flávio

http://javascript.singuska.com

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara,

exatamente isso que eu tava precisando,

mandou benzaço. Valeu!

 

A sim as vezes esse era uma boa de você postar no seu blog,

não achei nada parecido na net, e passei horas procurando.

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.