Usuário com melhor resposta
Mensagem Confirmação JavaScript Code Behind

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.
- Editado Mariana C. Costa quinta-feira, 19 de outubro de 2017 19:07
- Movido welington jrModerator domingo, 22 de outubro de 2017 14:32 lugar mais adequadro
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
- Editado welington jrModerator segunda-feira, 23 de outubro de 2017 17:42
- Marcado como Resposta Mariana C. Costa segunda-feira, 23 de outubro de 2017 18:38
Todas as Respostas
-
Olá,
Tempo atras eu respondi basicamente que você este precisando.
https://social.msdn.microsoft.com/Forums/pt-BR/20981fee-154a-4665-9af0-07778c520200/como-capturar-o-valor-sim-ou-no-de-uma-dialog-modal-no-codebehind-server-side?forum=aspnetpt
mas essa função js MessageBoxYesNo esta sendo chamada antes o submit da página?
- Editado welington jrModerator domingo, 22 de outubro de 2017 15:03
-
-
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.
-
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?
- Editado welington jrModerator segunda-feira, 23 de outubro de 2017 14:51
-
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; }
- Editado welington jrModerator segunda-feira, 23 de outubro de 2017 15:01
-
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 myFunctionEle dá erro nesta linha: document.getElementById("txtverifica1").value = "true";
-
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
- Editado welington jrModerator segunda-feira, 23 de outubro de 2017 17:37
-
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
-
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
- Editado welington jrModerator segunda-feira, 23 de outubro de 2017 17:42
- Marcado como Resposta Mariana C. Costa segunda-feira, 23 de outubro de 2017 18:38
-