none
Mensagem Confirmação JavaScript Code Behind RRS feed

  • Pergunta

  •                                                    

    Estou fazendo uma mensagem de confirmação em JavaScript, para que quando um button for clicado, aparece a mensagem, e tem o if, se for confirmado entra em um if, e se não for entra no else, porém ele não está entrando em nenhum dos nós, já fiz várias alterações, e nenhuma ele entra. Segue como estou fazendo:

    No Load coloco esse código: 

    btnGravarServico.OnClientClick = "return MessageBoxYesNo('Deseja fazer o recebimento desta matrícula ?')";

    Click do button:

    if (Convert.ToBoolean(hfMessageBoxYesNoResult.Value))
                            {
                                ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert('entrou');", true);
                        }
                        else
                        {
                         ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert('não entrou');", true);
                        }


    Ele deveria entrar em um dos dois, e aqui está o resto do código:

    <script type="text/javascript">
            function MessageBoxYesNo(message) {
                var messageBoxYesNoResult = confirm(message);
                document.getElementById('<%=hfMessageBoxYesNoResult.ClientID %>').value = messageBoxYesNoResult;
            }
        </script>
    <asp:HiddenField ID="hfMessageBoxYesNoResult" runat="server" />


    Estou fazendo uma mensagem de confirmação em JavaScript, para que quando um button for clicado, aparece a mensagem, e tem o if, se for confirmado entra em um if, e se não for entra no else, porém ele não está entrando em nenhum dos nós, já fiz várias alterações, e nenhuma ele entra. Segue como estou fazendo:

    btnGravarServico.OnClientClick = "return MessageBoxYesNo('Deseja fazer o recebimento desta matrícula ?')";


    Já tentei colocar == true no if, porém mesmo assim, preciso que ele pegue a confirmação no code behind, e não consegui nenhum exemplo que me ajudasse. Obrigado.

    quinta-feira, 19 de outubro de 2017 19:05

Respostas

  • então é isso

    código .aspx

    <asp:Button runat="server" ID="FazAlgumaCoisa" OnClick="FazAlgumaCoisa_Click" OnClientClick="myFunction()" Text="faz alguma coisa no código Behind" />
        <asp:TextBox ID="txtverifica1" runat="server"></asp:TextBox>
    
    
        <script type="text/javascript">
    
    
            function myFunction() {
                var txt;
                var r = confirm("Press a button!");
                if (r == true) {
                    document.getElementById("<%= txtverifica1.ClientID %>").value = "true";
                } else {
                    document.getElementById("<%= txtverifica1.ClientID %>").value = "false";
                }
             }
    
        </script> 

    código .cs

     protected void FazAlgumaCoisa_Click(object sender, EventArgs e)
            {
                if (txtverifica1.Text == "true")
                {
                    //faz alguma coisa
                }
                else
                {
    
                }
            }
    No click do botão eu chamei o método js e coloquei o valor nele. Depois ele continuou a execucao executou no servidor e pegou os dados


    segunda-feira, 23 de outubro de 2017 17:40
    Moderador

Todas as Respostas

  • Vou adaptar ao meu código e fazer os testes, porém eu quero que faça a pergunta dentro do button, e dentro do button mesmo já pegue o resultado para entrar no if else e não no LOAD. 
    segunda-feira, 23 de outubro de 2017 11:16
  • Welington, tentei adaptar ao meu código porém não funciona, ele não entra no if, o valor sempre vem vazio, eu chamo a função no click, e logo depois de chamar a função, eu já faço o if com o resultado, ele deveria estar entrando no if, já que o click foi em OK, porém ele não entra. Já tentei passando pelo hidden, ou até por textbox, mas ele não passa o valor, segue como estou fazendo agora:

      function myFunction() {
                var txt;
                var r = confirm("Press a button!");
                if (r == true) {
                    document.getElementById("#<%=txtverifica1.ClientID %>").value = "true";
                } else {
                    document.getElementById("#<%=txtverifica1.ClientID %>").value = "false";
                }
            }
      if (txtverifica1.Text == "true")
                            {
    //condição
    }
    else
    {
    }
    ele não pega o valor, agora eu tentei passando pelo textbox. Obrigado.

    segunda-feira, 23 de outubro de 2017 12:16
  • Essa # está errada ai, removi ela aqui e funcionou perfeitamente essa parte o textbox recebeu o valor

    <asp:TextBox ID="txtverifica1" runat="server"></asp:TextBox>
    
        <input type="button" value="clique aqui" onclick="myFunction()" />
    
        <script type="text/javascript">
    
    
            function myFunction() {
                var txt;
                var r = confirm("Press a button!");
                if (r == true) {
                    document.getElementById("<%= txtverifica1.ClientID %>").value = "true";
                } else {
                    document.getElementById("<%= txtverifica1.ClientID %>").value = "false";
                }
    
    
                if (document.getElementById("<%= txtverifica1.ClientID %>").value == "true") {
    
                    alert("clicou em true")
                }
                else {
                    alert("clicou em false")
                }
    
             }
    
    
        </script>

    agora no mesmo botão que você atribuiu o valor nesse hidden ou textbox, quer pegar no codigo behind? Você quer executar  uma função js e depois fazer um submit na página?



    segunda-feira, 23 de outubro de 2017 14:45
    Moderador
  • Pegando o que foi clicado no código behind, Código completo

    <asp:Button runat="server" ID="FazAlgumaCoisa" OnClick="FazAlgumaCoisa_Click" Text="faz alguma coisa no código Behind" />
        <asp:TextBox ID="txtverifica1" runat="server"></asp:TextBox>
        <input type="button" value="clique aqui" onclick="myFunction()" />
    
    
        <script type="text/javascript">
    
    
            function myFunction() {
                var txt;
                var r = confirm("Press a button!");
                if (r == true) {
                    document.getElementById("<%= txtverifica1.ClientID %>").value = "true";
                } else {
                    document.getElementById("<%= txtverifica1.ClientID %>").value = "false";
                }
             }
    
        </script>

    protected void FazAlgumaCoisa_Click(object sender, EventArgs e)
            {
                var s = txtverifica1.Text;
            }


    segunda-feira, 23 de outubro de 2017 15:00
    Moderador
  • Ele retorna o valor vazio,

    eu chamo a função no click do button, e logo em seguida já quero que entre if else:

                        ScriptManager.RegisterClientScriptBlock(this, GetType(), "", "myFunction()", true);
                        ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert('" + txtverifica1.Text + "');", true);
                        if (txtverifica1.Text == "true")
                            {
    //condição
    }
    else
    {
    condição
    }

    O txtverifica1, ele vem vazio.

    Ele ta me retornando o seguinte erro:

    Uncaught TypeError: Cannot set property 'value' of null
        at myFunction

    Ele dá erro nesta linha:  document.getElementById("txtverifica1").value = "true";

    segunda-feira, 23 de outubro de 2017 16:24
  • Deixa eu ver se entendi kkk.

    Você que clica no botão, ai é exibido uma mensagem, depois de ele clicar nesses botões da mensagem, que quer ele executa o código no evento click do botão? Fazer tudo em um clique só?


    Do jeito que eu coloquei tem botão para adicionar o valor e outro para executar no click do botão no code behind


    Ele está vindo vazio deve ser porque não está atribuindo valor a ele. Você esta adicionado javascript depois que ele foi clicado parece

    Essa linha com erro deve ser porque não tem algum controle com esse nome/id, o textbox deve estar saindo com outro nome

    segunda-feira, 23 de outubro de 2017 17:25
    Moderador
  • Exato, eu quero que faça a sequencia, no button, ele chama a função, que faz a pergunta, ai eu quero que ele já pegue o que ele clicou, para entrar no if, tudo isso em um button só. Estou sofrendo um dobrado, javascript ainda é meio novo pra mim kkkk Obrigado.

    Desculpe se eu não fui clara rsrs 

    segunda-feira, 23 de outubro de 2017 17:30
  • então é isso

    código .aspx

    <asp:Button runat="server" ID="FazAlgumaCoisa" OnClick="FazAlgumaCoisa_Click" OnClientClick="myFunction()" Text="faz alguma coisa no código Behind" />
        <asp:TextBox ID="txtverifica1" runat="server"></asp:TextBox>
    
    
        <script type="text/javascript">
    
    
            function myFunction() {
                var txt;
                var r = confirm("Press a button!");
                if (r == true) {
                    document.getElementById("<%= txtverifica1.ClientID %>").value = "true";
                } else {
                    document.getElementById("<%= txtverifica1.ClientID %>").value = "false";
                }
             }
    
        </script> 

    código .cs

     protected void FazAlgumaCoisa_Click(object sender, EventArgs e)
            {
                if (txtverifica1.Text == "true")
                {
                    //faz alguma coisa
                }
                else
                {
    
                }
            }
    No click do botão eu chamei o método js e coloquei o valor nele. Depois ele continuou a execucao executou no servidor e pegou os dados


    segunda-feira, 23 de outubro de 2017 17:40
    Moderador
  • Muito obrigado pela ajuda Welington, agora funcionou perfeitamente da forma que eu precisava. rs


    segunda-feira, 23 de outubro de 2017 18:39