Ir para conteúdo
Fórum Script Brasil
  • 0

Simulando um confirm em JAVAScript


artsoft.lucas@terra.com.br

Pergunta

Boa Noite,

Afinal, é possível simular um confirm utilizando JavaScript???

Já fiz exaustivas pesquisas, baixei compomentes Jquerys, tentei entender o funcionamento dos callback e nada resolveu meu problema. Sou iniciante em Javascript e estou meio "inconformado" com as limitações da linguagem. É no minimo irritante ter que usar os confirms e alert do browser.

Gostaria de fazer algo simples, como no codígo abai'xo. O problema é que o javascript é assincrono e executa a rotina toda ANTES do usuário fazer sua escolha. Gostaria da uma opinião de alguém que tenha larga experiência em java, se é possível ou não fazer este tipo coisa.

A função esta funcionando OK , o problema é que que quando chamo a mesma o java não espera o retorno para continuar executando.


if (messageYesNo("confirma exclusao?"))
   {alert ("vai excluir")}  
else
   {alert ("não vai excluir")}


//... continua o fluxo  

                      
function messageYesNo(vmessa)
{    
    Lobibox.confirm({
    msg: vmessa,
    callback: function ($this, type, ev) 
    {
       if (type == 'yes')
         {
            messageYesNo = true
            return true
          }                   
       else     
         {
           messageYesNo = false
           return false              
         } 
    }            
}
)
}
 

 

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Obrigado pela resposta Jhonas,

Infelizmente a forma sugerida de Callback não funciona, eu já havia testado. Para funcionar desta forma eu teria que inserir o bloco do codigo do que o sistema irá fazer após a escolha do usuário dentro da função , e isso fica pouco funcional, pois muitas vezes o sistema tem dezenas de linhas de codigo para processar após o usuáro fazer sua escolha. Preciso de uma forma  que retorne o result (sim/não) e permita seguir o fluxo do programa, assim como o confirm.

Link para o comentário
Compartilhar em outros sites

  • 0

Quanto à sua "inconformação", eu diria que esse problema não é causado pela "limitação da linguagem", e sim do seu conhecimento (porque, de verdade, é algo "simples"... mas que exige um certo conhecimento da linguagem). Se você já programa em outra linguagem, entenda que o que muda não é apenas nome de funções e sintaxe...  dependendo da linguagem (como parece ser seu caso), é outro paradigma. O que você faz e da forma como faz em uma, pode não funcionar na outra. Cada linguagem tem suas características e peculiaridades, senão não teríamos inúmeras linguagens, afinal todas seriam "iguais".

A forma mais fácil e simples é usando callback mesmo, até porque, o próprio plugin que você está usando (Lobibox confirm) já disponibiliza essa opção (se não funcionou, tem algum erro no seu código... ou então no código do plugin). Consegue fazer de outra forma? Consegue sim, mas provavelmente é gambiarra.

Eu não sei como está todo seu código, mas eu diria para você criar uma função com o código que você quer executar, e chamar ela dentro do callback. Algo assim:

function excluirRegistro(){
	// ...
}

function messageYesNo(vmessa){
	Lobibox.confirm({
		msg: vmessa,
		callback: function ($this, type, ev) {
			if (type == 'yes'){
				excluirRegistro();
			}else{
				alert ("não vai excluir")
			}
		}
	});
}

obs1: Java e JavaScript são linguagens diferentes;

obs2: você está usando o mesmo nome para função e variável (messageYesNo), logo, a função será sobrescrita;

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...