Jump to content
Fórum Script Brasil
  • 0

Simulando um confirm em JAVAScript


artsoft.lucas@terra.com.br
 Share

Question

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 to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      149.9k
    • Total Posts
      646.8k
×
×
  • Create New...