none
O alerta da minha função javascrip só funciona na 1 vez. RRS feed

  • Pergunta

  • Por que o alerta da minha função javascript só funciona na 1 vez ?

    Segue meu codigo abaixo:

    Quem puder me ajudar eu agradeço muito.

    <asp:DropDownList id="ddAddressItem" OnSelectedIndexChanged="ddAddressItem_SelChanged" AutoPostBack="True" 
                    CssClass="LabelText" runat="server" style="width: 260px"  />

                
                  
                <script>
                    window.onload = function()
                    {
                        var drop = document.getElementById("<%=ddAddressItem.ClientID%>");

                     drop.addEventListener("change", function () {
                    //alterado aqui
                    var text = this.options[this.selectedIndex].innerHTML;


                    if (text != "CNA Matriz" && text != "Retirar na Artsim") // pode ser o value dependendo o caso
                    {
                        alert("Atenção: Nesta opção de envio será cobrado a taxa  a pagar do sedex conforme sua região.");

                    }

                });
                    }
              </script>

    segunda-feira, 21 de março de 2016 11:54

Respostas

  • Coloca esse seu Javascript em um arquivo externo e vê se funciona.

    Outra opção é remover o AutoPostBack="True"e adicionar isso ao seu javascript depois do if:

    __doPostBack('ddAddressItem', this.options[this.selectedIndex].value);


    • Marcado como Resposta Marcos SJ segunda-feira, 21 de março de 2016 13:52
    segunda-feira, 21 de março de 2016 13:11
  • Bom dia.

    Ricardo, recomendo incluir a referência do jQuery no teu projeto e trocar 

    window.onload = function() { }

    por

    function pageLoad() { }
    O método pageLoad() é executado TAMBÉM nos PostBacks, porém o window.onload, não (possivelmente por isso que só funciona na primeira vez que o código é executado).


    Att., Rafael Simor


    • Marcado como Resposta Marcos SJ segunda-feira, 21 de março de 2016 14:09
    • Editado SimorC segunda-feira, 21 de março de 2016 14:10 Correção ortográfica
    segunda-feira, 21 de março de 2016 14:04

Todas as Respostas

  • Minha função javascript não esta funcionando.

    O que esta errado no meu codigo ?

    <asp:DropDownList ID="ddAddressItem" OnSelectedIndexChanged="ddAddressItem_SelChanged" AutoPostBack="True"
            CssClass="LabelText" runat="server" Style="width: 260px"/>
            

        <script>
            window.onload = function funcao1() 
            {
                var drop = document.getElementById("<%=ddAddressItem.ClientID%>");

                drop.addEventListener("change", function ()
                 {
                    var index = drop.selectedIndex;
                    var value = drop.options[index].value;
                    var text = drop.options[index].text;

                    if (text != "CNA Matriz" && text != "Retirar na Artsim") // pode ser o value dependendo o caso
                    {
                        alert("Atenção: Nesta opção de envio será cobrado a taxa  a pagar do sedex conforme sua região.");

                    }

                });
            }
        </script>
        

    • Mesclado Marcos SJ segunda-feira, 14 de março de 2016 14:31 Thread duplicada
    sexta-feira, 11 de março de 2016 06:33
  • Olá ricardoti2012

    Dê um alert na propriedade ddAddressItem.ClientID e verifique se o valor está "undefined"

    Abra o modo desenvolvedor do seu navegador, coloque um breakpoint no trecho drop.addEventListener e verifique se entra na função.


    Lucas Lima


    • Editado Lucas Lima sexta-feira, 11 de março de 2016 11:37
    • Marcado como Resposta Marcos SJ sexta-feira, 11 de março de 2016 19:36
    • Não Marcado como Resposta Marcos SJ sexta-feira, 11 de março de 2016 19:39
    sexta-feira, 11 de março de 2016 11:33
  • Olá Ricardo,

    A melhor maneira de debugar javascript é utilizando o alert dentro da função e verificando se a mesma está sendo chamada e os valores estão sendo preenchidos.


    Att., Roberto Alves

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    • Marcado como Resposta Marcos SJ sexta-feira, 11 de março de 2016 19:42
    sexta-feira, 11 de março de 2016 19:41
  • Bom dia 

    Eu tenho essa função javascrip abaixo que chama um alerta quando o usuário escolhe uma opção diferente no meu DroDownList.

    Porem essa função só é disparada uma vez apenas. Se o usuário escolher a opção de alerta na 2 vez ela não funciona.

    O que tem de errado no meu codigo ?

    Fico no aguardo.

    Muito Obrigado.

    <asp:DropDownList ID="ddAddressItem" OnSelectedIndexChanged="ddAddressItem_SelChanged" AutoPostBack="True"
            CssClass="LabelText" runat="server" Style="width: 260px"/>
    
    
        <script>
            window.onload = function funcao1() 
            {
                var drop = document.getElementById("<%=ddAddressItem.ClientID%>");
    
                drop.addEventListener("change", function ()
                {
                    //alterado aqui
                    var text= this.options[this.selectedIndex].innerHTML;
    
    
                    if (text != "CNA Matriz" && text != "Retirar na Artsim") // pode ser o value dependendo o caso
                    {
                        alert("Atenção: Nesta opção de envio será cobrado a taxa  a pagar do sedex conforme sua região.");
    
                    }
    
                });
            }
        </script>

    • Mesclado Marcos SJ segunda-feira, 14 de março de 2016 17:16 Thread repetida
    segunda-feira, 14 de março de 2016 11:46
  • Essa condição está sendo satisfeita quando vc altera? Tentou colocar um ponto de parada pra ver se entá caindo no evento quando vc muda de opção?

    if (text != "CNA Matriz" && text != "Retirar na Artsim") // pode ser o value dependendo o caso
                    {
                        alert("Atenção: Nesta opção de envio será cobrado a taxa  a pagar do sedex conforme sua região.");
    
                    }

    Tem um detalhe:

    window.onload = function funcao1() //isso nao faz sentido
    window.onload = function() //isso faz sentido... 


    Att. Andre de Mattos Ferraz - www.iamferraz.com.br - http://mbsy.co/ldecrespigny/19022985


    segunda-feira, 14 de março de 2016 12:00
  • Bom dia André

    Obrigado pela ajuda. Vamos la.

    Coloquei da forma que postou:

     <asp:DropDownList id="ddAddressItem" OnSelectedIndexChanged="ddAddressItem_SelChanged" AutoPostBack="True" 
                    CssClass="LabelText" runat="server" style="width: 260px"  />

                <script>
                    window.onload = function()
                    {
                        var drop = document.getElementById("<%=ddAddressItem.ClientID%>");

                     drop.addEventListener("change", function () {
                    //alterado aqui
                    var text = this.options[this.selectedIndex].innerHTML;


                    if (text != "CNA Matriz" && text != "Retirar na Artsim") // pode ser o value dependendo o caso
                    {
                        alert("Atenção: Nesta opção de envio será cobrado a taxa  a pagar do sedex conforme sua região.");

                    }

                });
                    }
              </script>

    A condição só é feita quando eu altero o DropDownList na primeira vez. Depois a função javascrip não é mais acionada. É como se ela ficasse desabilitada. Muito estranho. Não sei mais como resolver. 

    Obs: Seu eu dou um  F5 na pagina ela volta a funcionar uma vez também. Desculpe mas estou sem entender o motivo de não esta funcionando.

    Aguardeço sua ajuda.

    Aguardo seu retorno.

    Obrigado.

    segunda-feira, 14 de março de 2016 12:23
  • Bom dia pessoal

    Segue meu código completo. Pois pode ser que tenha algo no meu código que só deixa a função jacascript ser executada apenas 1 vez.

    <%@ Page Language="c#" CodeBehind="UserCheckoutShipping.aspx.cs" Inherits="PFWeb.UserCheckoutShipping"
        AutoEventWireup="false" ValidateRequest="false" %>

    <%@ Register Src="_OrderTotal.ascx" TagName="_OrderTotal" TagPrefix="uc1" %>
    <!-- #include file = "register.inc" -->
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <!-- Pageflex
         Copyright (C) 2004-2012 Pageflex
         All rights reserved.

    -->
    <html>
    <head>
        <title>CheckoutShipping/Window/Title</title>
        <link rel="stylesheet" href="UserSite.css.aspx" type="text/css">
        <%--<meta HTTP-EQUIV="refresh" CONTENT="6">--%> 
    </head>
    <body class="page">
        <form runat="server">
        <asp:ScriptManager ID="ScriptManager1" runat="server" />
        <pfweb:pageheader runat="server" pageinsertselector="Shipping" />
        <pfweb:warningarea runat="server" name="shippingWeightOverflow" icon="WarningIconWarning"
            message='<%# Strings.Get("CheckoutShipping/Warning/shippingWeightOverflow") %>' />
        <pfweb:steparea id="StepArea" runat="server" titletext='<%# Strings.Get("CheckoutSteps/Area/Title") %>'
            titleicon="areaIconCheckout" helptopic="CheckoutShipping" steptype="Shipping"
            commenttext='<%# Strings.Get("CheckoutShipping/Area/Comment") %>'>



            <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
                <table cellpadding="0" cellspacing="0">
          <tr>
            <td>
            
            <asp:Panel ID="PanelNewShipping" runat="server">
           <div class="MultiShippingButton">
              <PFWeb:LinkButton Layout="nested" CssClass="siteButton" id="btnShipMultiple" Text=<%# Strings.Get("CheckoutShipping/Button/ShipMultiple") %>  runat="server" />
              <div class="clear"> </div>
            </div>
            
          <div class="Form_Header">
            <p><%# Strings.Get("CheckoutShipping/Label/ShipTo") %></p>
          </div>
          <div class="block" id="divMissingAddressBlock" runat="server"
                             style="margin-top: 10px; width: 300px; display: none">
             <asp:LinkButton 
                      Text=<%# Strings.Get("CheckoutShipping/Link/AddNewAddress") %>
                      class="siteLink"
                      runat="server"
                      ID="btnAddNewAddress" />
             <div class="block">
             <span class="tip" id="spnAddressBookEmpty" runat="server"><%# Strings.Get("CheckoutShipping/Tip/AddressBookEmpty") %></span></div>
          </div>
          <div class="block" style="display: block" id="divAddressBlock" runat="server">
            <div class="divsInARow">

                <asp:DropDownList id="ddAddressItem" OnSelectedIndexChanged="ddAddressItem_SelChanged" AutoPostBack="True" 
                    CssClass="LabelText" runat="server" style="width: 260px"  />

                

                <script>
                    window.onload = function()
                    {
                        var drop = document.getElementById("<%=ddAddressItem.ClientID%>");

                     drop.addEventListener("change", function () {
                    //alterado aqui
                    var text = this.options[this.selectedIndex].innerHTML;


                    if (text != "CNA Matriz" && text != "Retirar na Artsim") // pode ser o value dependendo o caso
                    {
                        alert("Atenção: Nesta opção de envio será cobrado a taxa  a pagar do sedex conforme sua região.");

                    }

                });
                    }
              </script>
               

            </div>


            <div class="divsInARow">
             <asp:LinkButton 
                      class="addressBookIcon"
                      runat="server"
                      ID="lnkAddressBook"
                   ToolTip=<%# Strings.Get("CheckoutShipping/Tip/AddressBookLink") %>
                 ><span class="alt"><%# Strings.Get("CheckoutShipping/Image/AddressBook") %></span></asp:LinkButton>
            </div>
            <div class="clear"> </div>
            <p id="warningAddressBook" runat="server" Visible="False">
              <span class="error">
                 <%# Strings.Get("CheckoutShipping/ErrorMessage/AddressInvalid") %>
              </span> 
              <a id="linkToAddressBookItem" runat="server" class="siteLink" 
                                        href="UserContentAddressBook.aspx&msdIndex=0">
                 <%# Strings.Get("CheckoutShipping/Link/AddressBookItem") %></a>
            </p>


              

    <asp:UpdatePanel ID="UpdatePanelAddressBlock" runat="server" UpdateMode="Always" >
    <ContentTemplate>
       <div class="ShippingAddressBlock"><asp:Literal ID="LiteralAddressBlock" runat="server" /></div>
       </ContentTemplate>
       <Triggers>
       <asp:AsyncPostBackTrigger ControlID="ddAddressItem" />



       </Triggers>
       </asp:UpdatePanel>

          </div>      
          </asp:Panel>
          
          <div class="block">
            <PFWeb:FieldFillingForm id="InputFields" runat="server" formName="Shipping"
                HorizontalAlign="Left"/>
          </div>
                
            <div id="divBtnUpdate" runat="server">
          <PFWeb:LinkButton Layout="nested" CssClass="siteButton" runat="server" id="btnUpdate"
            Text=<%# Strings.Get("CheckoutShipping/Button/UpdateShippingCharges") %> />
            </div>
              
          <PFWeb:FieldFillingForm id="defaultPayment" runat="server" Visible="false" formName="Payment"/>
            
          <p id="MessageNoOptions" class="center" runat="server">
              <%# Strings.Get("CheckoutShipping/Message/NoShippingOptions") %>.
          </p>

            </td>
            <td valign="top">
            
          <table align="right" border="0" cellpadding="0" cellspacing="0">
            <tr>
              <td>
              <div class="siteButtonBlock">
                <PFWeb:LinkButton ID="LinkButtonCancelCheckout" Layout="nested" CssClass="siteButton"
                  Text=<%# Strings.Get("CheckoutSteps/Button/CancelCheckout") %>
                  Link="UserContentShoppingCart.aspx" runat="server"/></p>
                  </div>
              </td>
           </tr>
          </table>
            <div id="divSubTotal" runat="server" style="padding-top:50px;">
                <uc1:_OrderTotal ID="otEstimate" runat="server" />
                <asp:UpdateProgress ID="UpdateProgress2" runat="server">
                    <ProgressTemplate>
                        <img src="./Images/AjaxWait.gif" alt="Please Wait" />
                        Loading...
                    </ProgressTemplate>
                </asp:UpdateProgress>
            </div>    
            </td>
          </tr>
        </table>
                </ContentTemplate>
            </asp:UpdatePanel>
        </pfweb:steparea>
        <pfweb:pagefooter runat="server" pageinsertselector="Shipping" />
        </form>
    </body>
    </html>

    segunda-feira, 14 de março de 2016 14:20
  • Ricardo,

    Quando existe um UpdatePanel na página isso ocorre mesmo, portanto terá que acrescentar uma juste para que seja atribuido essa funcionalidade do javascript novamente, após o postback.

    Working with jQuery within the ASP.NET UpdatePanel

    http://www.codeproject.com/Articles/601683/Working-with-jQuery-within-the-ASP-NET-UpdatePanel

    Segue um exemplo com jQuery, só você adaptar pro seu problema com o javascript.

    Abs,

    • Sugerido como Resposta André de Mattos Ferraz segunda-feira, 14 de março de 2016 16:27
    • Marcado como Resposta Marcos SJ segunda-feira, 14 de março de 2016 17:17
    segunda-feira, 14 de março de 2016 16:04
  • Bom Tarde

    Segue meu código completo. Pois pode ser que tenha algo no meu código que só deixa a função jacascript ser executada apenas 1 vez.

    <%@ Page Language="c#" CodeBehind="UserCheckoutShipping.aspx.cs" Inherits="PFWeb.UserCheckoutShipping"
        AutoEventWireup="false" ValidateRequest="false" %>

    <%@ Register Src="_OrderTotal.ascx" TagName="_OrderTotal" TagPrefix="uc1" %>
    <!-- #include file = "register.inc" -->
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <!-- Pageflex
         Copyright (C) 2004-2012 Pageflex
         All rights reserved.

    -->
    <html>
    <head>
        <title>CheckoutShipping/Window/Title</title>
        <link rel="stylesheet" href="UserSite.css.aspx" type="text/css">
        <%--<meta HTTP-EQUIV="refresh" CONTENT="6">--%> 
    </head>
    <body class="page">
        <form runat="server">
        <asp:ScriptManager ID="ScriptManager1" runat="server" />
        <pfweb:pageheader runat="server" pageinsertselector="Shipping" />
        <pfweb:warningarea runat="server" name="shippingWeightOverflow" icon="WarningIconWarning"
            message='<%# Strings.Get("CheckoutShipping/Warning/shippingWeightOverflow") %>' />
        <pfweb:steparea id="StepArea" runat="server" titletext='<%# Strings.Get("CheckoutSteps/Area/Title") %>'
            titleicon="areaIconCheckout" helptopic="CheckoutShipping" steptype="Shipping"
            commenttext='<%# Strings.Get("CheckoutShipping/Area/Comment") %>'>



            <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
                <table cellpadding="0" cellspacing="0">
          <tr>
            <td>
            
            <asp:Panel ID="PanelNewShipping" runat="server">
           <div class="MultiShippingButton">
              <PFWeb:LinkButton Layout="nested" CssClass="siteButton" id="btnShipMultiple" Text=<%# Strings.Get("CheckoutShipping/Button/ShipMultiple") %>  runat="server" />
              <div class="clear"> </div>
            </div>
            
          <div class="Form_Header">
            <p><%# Strings.Get("CheckoutShipping/Label/ShipTo") %></p>
          </div>
          <div class="block" id="divMissingAddressBlock" runat="server"
                             style="margin- width: 300px; display: none">
             <asp:LinkButton 
                      Text=<%# Strings.Get("CheckoutShipping/Link/AddNewAddress") %>
                      class="siteLink"
                      runat="server"
                      ID="btnAddNewAddress" />
             <div class="block">
             <span class="tip" id="spnAddressBookEmpty" runat="server"><%# Strings.Get("CheckoutShipping/Tip/AddressBookEmpty") %></span></div>
          </div>
          <div class="block" style="display: block" id="divAddressBlock" runat="server">
            <div class="divsInARow">

                <asp:DropDownList id="ddAddressItem" OnSelectedIndexChanged="ddAddressItem_SelChanged" AutoPostBack="True" 
                    CssClass="LabelText" runat="server" style="width: 260px"  />

                

                <script>
                    window.onload = function()
                    {
                        var drop = document.getElementById("<%=ddAddressItem.ClientID%>");

                     drop.addEventListener("change", function () {
                    //alterado aqui
                    var text = this.options[this.selectedIndex].innerHTML;


                    if (text != "CNA Matriz" && text != "Retirar na Artsim") // pode ser o value dependendo o caso
                    {
                        alert("Atenção: Nesta opção de envio será cobrado a taxa  a pagar do sedex conforme sua região.");

                    }

                });
                    }
              </script>
               

            </div>


            <div class="divsInARow">
             <asp:LinkButton 
                      class="addressBookIcon"
                      runat="server"
                      ID="lnkAddressBook"
                   ToolTip=<%# Strings.Get("CheckoutShipping/Tip/AddressBookLink") %>
                 ><span class="alt"><%# Strings.Get("CheckoutShipping/Image/AddressBook") %></span></asp:LinkButton>
            </div>
            <div class="clear"> </div>
            <p id="warningAddressBook" runat="server" Visible="False">
              <span class="error">
                 <%# Strings.Get("CheckoutShipping/ErrorMessage/AddressInvalid") %>
              </span> 
              <a id="linkToAddressBookItem" runat="server" class="siteLink" 
                                        href="UserContentAddressBook.aspx&msdIndex=0">
                 <%# Strings.Get("CheckoutShipping/Link/AddressBookItem") %></a>
            </p>


              

    <asp:UpdatePanel ID="UpdatePanelAddressBlock" runat="server" UpdateMode="Always" >
    <ContentTemplate>
       <div class="ShippingAddressBlock"><asp:Literal ID="LiteralAddressBlock" runat="server" /></div>
       </ContentTemplate>
       <Triggers>
       <asp:AsyncPostBackTrigger ControlID="ddAddressItem" />



       </Triggers>
       </asp:UpdatePanel>

          </div>      
          </asp:Panel>
          
          <div class="block">
            <PFWeb:FieldFillingForm id="InputFields" runat="server" formName="Shipping"
                HorizontalAlign="Left"/>
          </div>
                
            <div id="divBtnUpdate" runat="server">
          <PFWeb:LinkButton Layout="nested" CssClass="siteButton" runat="server" id="btnUpdate"
            Text=<%# Strings.Get("CheckoutShipping/Button/UpdateShippingCharges") %> />
            </div>
              
          <PFWeb:FieldFillingForm id="defaultPayment" runat="server" Visible="false" formName="Payment"/>
            
          <p id="MessageNoOptions" class="center" runat="server">
              <%# Strings.Get("CheckoutShipping/Message/NoShippingOptions") %>.
          </p>

            </td>
            <td valign="top">
            
          <table align="right" border="0" cellpadding="0" cellspacing="0">
            <tr>
              <td>
              <div class="siteButtonBlock">
                <PFWeb:LinkButton ID="LinkButtonCancelCheckout" Layout="nested" CssClass="siteButton"
                  Text=<%# Strings.Get("CheckoutSteps/Button/CancelCheckout") %>
                  Link="UserContentShoppingCart.aspx" runat="server"/></p>
                  </div>
              </td>
           </tr>
          </table>
            <div id="divSubTotal" runat="server" style="padding-">
                <uc1:_OrderTotal ID="otEstimate" runat="server" />
                <asp:UpdateProgress ID="UpdateProgress2" runat="server">
                    <ProgressTemplate>
                        <img src="./Images/AjaxWait.gif" alt="Please Wait" />
                        Loading...
                    </ProgressTemplate>
                </asp:UpdateProgress>
            </div>    
            </td>
          </tr>
        </table>
                </ContentTemplate>
            </asp:UpdatePanel>
        </pfweb:steparea>
        <pfweb:pagefooter runat="server" pageinsertselector="Shipping" />
        </form>
    </body>
    </html>

    Alguém pode me ajudar for favor.

    Fico no aguardo

    Obrigado

    • Mesclado Marcos SJ segunda-feira, 21 de março de 2016 13:54 Thread duplicada
    segunda-feira, 14 de março de 2016 16:07
  • Ricardo, 

    evite abrir várias threads com o mesmo assunto.

     Função Javascrip não esta funcionando

     Função JavaScrip só funciona 1 vez

     Por que a minha função javascript só é executada apenas 1 vez

    Acompanhe sempre na mesma thread, até porque se houver outra pessoa que queira te ajudar, já vai saber todo o histórico do problema para não perder tempo com soluções já propostas anteriormente.

    Para fazer a thread entrar em evidência novamente, basta postar algo nela.

    Att,


    Antero Marques

    segunda-feira, 14 de março de 2016 16:34
  • Bom dia Ricardo Rodrigues

    Eu mudei meu código conforme seu link porem o problema ainda continua o mesmo.

    A função javascrip só funciona na 1 vez.

    Se puder me ajudar eu agradeço muito.

    Fico no aguardo.

    <%@ Page Language="c#" CodeBehind="UserCheckoutShipping.aspx.cs" Inherits="PFWeb.UserCheckoutShipping"
        AutoEventWireup="false" ValidateRequest="false" %>

    <%@ Register Src="_OrderTotal.ascx" TagName="_OrderTotal" TagPrefix="uc1" %>
    <!-- #include file = "register.inc" -->
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <!-- Pageflex
         Copyright (C) 2004-2012 Pageflex
         All rights reserved.

    -->
    <html>
    <head>
        <title>CheckoutShipping/Window/Title</title>
        <link rel="stylesheet" href="UserSite.css.aspx" type="text/css">
        

         <script>
             window.onload = function () {
                 var drop = document.getElementById("<%=ddAddressItem.ClientID%>");

                        drop.addEventListener("change", function () {
                            //alterado aqui
                            var text = this.options[this.selectedIndex].innerHTML;


                            if (text != "CNA Matriz" && text != "Retirar na Artsim") // pode ser o value dependendo o caso
                            {
                                alert("Atenção: Nesta opção de envio será cobrado a taxa  a pagar do sedex conforme sua região.");

                            }

                        });
                    }
              </script>

    </head>
    <body class="page">
        <form runat="server">
        <asp:ScriptManager ID="ScriptManager1" runat="server" />
        <pfweb:pageheader runat="server" pageinsertselector="Shipping" />
        <pfweb:warningarea runat="server" name="shippingWeightOverflow" icon="WarningIconWarning"
            message='<%# Strings.Get("CheckoutShipping/Warning/shippingWeightOverflow") %>' />
        <pfweb:steparea id="StepArea" runat="server" titletext='<%# Strings.Get("CheckoutSteps/Area/Title") %>'
            titleicon="areaIconCheckout" helptopic="CheckoutShipping" steptype="Shipping"
            commenttext='<%# Strings.Get("CheckoutShipping/Area/Comment") %>'>



            <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
                <table cellpadding="0" cellspacing="0">
          <tr>
            <td>
            
            <asp:Panel ID="PanelNewShipping" runat="server">
           <div class="MultiShippingButton">
              <PFWeb:LinkButton Layout="nested" CssClass="siteButton" id="btnShipMultiple" Text=<%# Strings.Get("CheckoutShipping/Button/ShipMultiple") %>  runat="server" />
              <div class="clear"> </div>
            </div>
            
          <div class="Form_Header">
            <p><%# Strings.Get("CheckoutShipping/Label/ShipTo") %></p>
          </div>
          <div class="block" id="divMissingAddressBlock" runat="server"
                             style="margin-top: 10px; width: 300px; display: none">
             <asp:LinkButton 
                      Text=<%# Strings.Get("CheckoutShipping/Link/AddNewAddress") %>
                      class="siteLink"
                      runat="server"
                      ID="btnAddNewAddress" />
             <div class="block">
             <span class="tip" id="spnAddressBookEmpty" runat="server"><%# Strings.Get("CheckoutShipping/Tip/AddressBookEmpty") %></span></div>
          </div>
          <div class="block" style="display: block" id="divAddressBlock" runat="server">
            <div class="divsInARow">

                <asp:DropDownList id="ddAddressItem" OnSelectedIndexChanged="ddAddressItem_SelChanged" AutoPostBack="True" 
                    CssClass="LabelText" runat="server" style="width: 260px"  />

                

               
               

            </div>


            <div class="divsInARow">
             <asp:LinkButton 
                      class="addressBookIcon"
                      runat="server"
                      ID="lnkAddressBook"
                   ToolTip=<%# Strings.Get("CheckoutShipping/Tip/AddressBookLink") %>
                 ><span class="alt"><%# Strings.Get("CheckoutShipping/Image/AddressBook") %></span></asp:LinkButton>
            </div>
            <div class="clear"> </div>
            <p id="warningAddressBook" runat="server" Visible="False">
              <span class="error">
                 <%# Strings.Get("CheckoutShipping/ErrorMessage/AddressInvalid") %>
              </span> 
              <a id="linkToAddressBookItem" runat="server" class="siteLink" 
                                        href="UserContentAddressBook.aspx&msdIndex=0">
                 <%# Strings.Get("CheckoutShipping/Link/AddressBookItem") %></a>
            </p>


              

    <asp:UpdatePanel ID="UpdatePanelAddressBlock" runat="server" UpdateMode="Always" >
    <ContentTemplate>
       <div class="ShippingAddressBlock"><asp:Literal ID="LiteralAddressBlock" runat="server" /></div>
       </ContentTemplate>
       <Triggers>
       <asp:AsyncPostBackTrigger ControlID="ddAddressItem" />



       </Triggers>
       </asp:UpdatePanel>

          </div>      
          </asp:Panel>
          
          <div class="block">
            <PFWeb:FieldFillingForm id="InputFields" runat="server" formName="Shipping"
                HorizontalAlign="Left"/>
          </div>
                
            <div id="divBtnUpdate" runat="server">
          <PFWeb:LinkButton Layout="nested" CssClass="siteButton" runat="server" id="btnUpdate"
            Text=<%# Strings.Get("CheckoutShipping/Button/UpdateShippingCharges") %> />
            </div>
              
          <PFWeb:FieldFillingForm id="defaultPayment" runat="server" Visible="false" formName="Payment"/>
            
          <p id="MessageNoOptions" class="center" runat="server">
              <%# Strings.Get("CheckoutShipping/Message/NoShippingOptions") %>.
          </p>

            </td>
            <td valign="top">
            
          <table align="right" border="0" cellpadding="0" cellspacing="0">
            <tr>
              <td>
              <div class="siteButtonBlock">
                <PFWeb:LinkButton ID="LinkButtonCancelCheckout" Layout="nested" CssClass="siteButton"
                  Text=<%# Strings.Get("CheckoutSteps/Button/CancelCheckout") %>
                  Link="UserContentShoppingCart.aspx" runat="server"/></p>
                  </div>
              </td>
           </tr>
          </table>
            <div id="divSubTotal" runat="server" style="padding-top:50px;">
                <uc1:_OrderTotal ID="otEstimate" runat="server" />
                <asp:UpdateProgress ID="UpdateProgress2" runat="server">
                    <ProgressTemplate>
                        <img src="./Images/AjaxWait.gif" alt="Please Wait" />
                        Loading...
                    </ProgressTemplate>
                </asp:UpdateProgress>
            </div>    
            </td>
          </tr>
        </table>
                </ContentTemplate>
            </asp:UpdatePanel>
        </pfweb:steparea>
        <pfweb:pagefooter runat="server" pageinsertselector="Shipping" />
        </form>
    </body>
    </html>

    terça-feira, 15 de março de 2016 13:33
  • Renildo  Rodrigues

    único ajuste que eu consegui ver seria o código abaixo:

    Esse código foi adiciona no final no javascrip.

    $(document).ready(InIEvent);

    Fico no aguardo.

    Muito Obrigado

    terça-feira, 15 de março de 2016 14:08
  • Bom dia

    Eu ja li o link e tentei adaptar porem não deu certo.

    A unica linha de comando diferente que vejo seria:

    $(document)ready(InIEvent);

    Por favor pode me ajudar ?

    Obrigado


    terça-feira, 15 de março de 2016 14:22
  • Ricardo,

    Segue um código de exemplo, adaptado com a sua situação:

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="javascript_updatepanel.aspx.cs" Inherits="Teste.Web.UI.testes.javascript_updatepanel" %>

    <!DOCTYPE html>

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>Javascript - UpdatePanel</title>
    </head>
    <body>
        <form id="form1" runat="server">
            <asp:ScriptManager ID="ScriptManager1" runat="server">
            </asp:ScriptManager>
            <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                <ContentTemplate>
                    <asp:DropDownList id="ddAddressItem" OnSelectedIndexChanged="ddAddressItem_SelChanged" AutoPostBack="True" CssClass="LabelText" runat="server" style="width: 260px" />

                    &nbsp;<asp:Button ID="Button1" runat="server" Text="Send" />

                    <script type="text/javascript">
                        window.onload = endRequest;

                        function selectAddressItem() {
                            var drop = document.getElementById("<%=ddAddressItem.ClientID%>");

                        drop.addEventListener("change", function () {
                            var text = this.options[this.selectedIndex].innerHTML;
                            if (text != "CNA Matriz" && text != "Retirar na Artsim") // pode ser o value dependendo o caso
                            {
                                alert("Atenção: Nesta opção de envio será cobrado a taxa  a pagar do sedex conforme sua região.");
                            }
                        });
                    }

                    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(endRequest);

                    function endRequest(sender, args) {
                        selectAddressItem();
                    }
                    </script>
                </ContentTemplate>
            </asp:UpdatePanel>
        </form>
    </body>
    </html>

    Obs.: vc pode utilizar qualquer nome para a function, deixei esses mesmo. Espero que ajude.
    • Sugerido como Resposta Roberto AB Filho terça-feira, 15 de março de 2016 19:00
    • Editado Renildo Rodrigues terça-feira, 15 de março de 2016 20:10
    • Marcado como Resposta Marcos SJ terça-feira, 15 de março de 2016 20:20
    terça-feira, 15 de março de 2016 18:48
  • Boa Tarde Renildo Rodrigues

    Muito Obrigado por tentar me ajudar

    Coloquei o seu Código adaptando as minhas condições aqui.

    Porem agora não chama a função do javascrip

    <%@ Page Language="c#" CodeBehind="UserCheckoutShipping.aspx.cs" Inherits="PFWeb.UserCheckoutShipping"
        AutoEventWireup="false" ValidateRequest="false" %>

    <%@ Register Src="_OrderTotal.ascx" TagName="_OrderTotal" TagPrefix="uc1" %>
    <!-- #include file = "register.inc" -->
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <!-- Pageflex
         Copyright (C) 2004-2012 Pageflex
         All rights reserved.

    -->
    <html>
    <head>
        <title>CheckoutShipping/Window/Title</title>
        <link rel="stylesheet" href="UserSite.css.aspx" type="text/css">
        <%--<meta HTTP-EQUIV="refresh" CONTENT="6">--%> 
    </head>
    <body class="page">
        <form runat="server">
        <asp:ScriptManager ID="ScriptManager1" runat="server" />
        <pfweb:pageheader runat="server" pageinsertselector="Shipping" />
        <pfweb:warningarea runat="server" name="shippingWeightOverflow" icon="WarningIconWarning"
            message='<%# Strings.Get("CheckoutShipping/Warning/shippingWeightOverflow") %>' />
        <pfweb:steparea id="StepArea" runat="server" titletext='<%# Strings.Get("CheckoutSteps/Area/Title") %>'
            titleicon="areaIconCheckout" helptopic="CheckoutShipping" steptype="Shipping"
            commenttext='<%# Strings.Get("CheckoutShipping/Area/Comment") %>'>



            <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
                <table cellpadding="0" cellspacing="0">
          <tr>
            <td>
            
            <asp:Panel ID="PanelNewShipping" runat="server">
           <div class="MultiShippingButton">
              <PFWeb:LinkButton Layout="nested" CssClass="siteButton" id="btnShipMultiple" Text=<%# Strings.Get("CheckoutShipping/Button/ShipMultiple") %>  runat="server" />
              <div class="clear"> </div>
            </div>
            
          <div class="Form_Header">
            <p><%# Strings.Get("CheckoutShipping/Label/ShipTo") %></p>
          </div>
          <div class="block" id="divMissingAddressBlock" runat="server"
                             style="margin-top: 10px; width: 300px; display: none">
             <asp:LinkButton 
                      Text=<%# Strings.Get("CheckoutShipping/Link/AddNewAddress") %>
                      class="siteLink"
                      runat="server"
                      ID="btnAddNewAddress" />
             <div class="block">
             <span class="tip" id="spnAddressBookEmpty" runat="server"><%# Strings.Get("CheckoutShipping/Tip/AddressBookEmpty") %></span></div>
          </div>
          <div class="block" style="display: block" id="divAddressBlock" runat="server">
            <div class="divsInARow">

                <asp:DropDownList id="ddAddressItem" OnSelectedIndexChanged="ddAddressItem_SelChanged" AutoPostBack="True" 
                    CssClass="LabelText" runat="server" style="width: 260px"  />

                

                <script type ="text/javascript">
                    window.onload = endRequest;
                    
                        function selectAddressItem()
                        {
                            var drop = document.getElementById("<%=ddAddressItem.ClientID%>");
                            drop.addEventListener("change", function () {
                                var text = this.options[this.selectedIndex].innerHTML;

                                if (text != "CNA Matriz" && text != "Retirar na Artsim") 
                                {
                                    alert("Atenção: Nesta opção de envio será cobrado a taxa  a pagar do sedex conforme sua região.");

                                }

                            });
                        }

                        Sys.WebForms.PageRequestManager.getInstance().add_endRequest(endRequest);

                        function endRequest(sender, args)
                        {
                            selectAdressItem();
                            
                        }
              </script>
               

            </div>


            <div class="divsInARow">
             <asp:LinkButton 
                      class="addressBookIcon"
                      runat="server"
                      ID="lnkAddressBook"
                   ToolTip=<%# Strings.Get("CheckoutShipping/Tip/AddressBookLink") %>
                 ><span class="alt"><%# Strings.Get("CheckoutShipping/Image/AddressBook") %></span></asp:LinkButton>
            </div>
            <div class="clear"> </div>
            <p id="warningAddressBook" runat="server" Visible="False">
              <span class="error">
                 <%# Strings.Get("CheckoutShipping/ErrorMessage/AddressInvalid") %>
              </span> 
              <a id="linkToAddressBookItem" runat="server" class="siteLink" 
                                        href="UserContentAddressBook.aspx&msdIndex=0">
                 <%# Strings.Get("CheckoutShipping/Link/AddressBookItem") %></a>
            </p>


              

    <asp:UpdatePanel ID="UpdatePanelAddressBlock" runat="server" UpdateMode="Always" >
    <ContentTemplate>
       <div class="ShippingAddressBlock"><asp:Literal ID="LiteralAddressBlock" runat="server" /></div>
       </ContentTemplate>
       <Triggers>
       <asp:AsyncPostBackTrigger ControlID="ddAddressItem" />



       </Triggers>
       </asp:UpdatePanel>

          </div>      
          </asp:Panel>
          
          <div class="block">
            <PFWeb:FieldFillingForm id="InputFields" runat="server" formName="Shipping"
                HorizontalAlign="Left"/>
          </div>
                
            <div id="divBtnUpdate" runat="server">
          <PFWeb:LinkButton Layout="nested" CssClass="siteButton" runat="server" id="btnUpdate"
            Text=<%# Strings.Get("CheckoutShipping/Button/UpdateShippingCharges") %> />
            </div>
              
          <PFWeb:FieldFillingForm id="defaultPayment" runat="server" Visible="false" formName="Payment"/>
            
          <p id="MessageNoOptions" class="center" runat="server">
              <%# Strings.Get("CheckoutShipping/Message/NoShippingOptions") %>.
          </p>

            </td>
            <td valign="top">
            
          <table align="right" border="0" cellpadding="0" cellspacing="0">
            <tr>
              <td>
              <div class="siteButtonBlock">
                <PFWeb:LinkButton ID="LinkButtonCancelCheckout" Layout="nested" CssClass="siteButton"
                  Text=<%# Strings.Get("CheckoutSteps/Button/CancelCheckout") %>
                  Link="UserContentShoppingCart.aspx" runat="server"/></p>
                  </div>
              </td>
           </tr>
          </table>
            <div id="divSubTotal" runat="server" style="padding-top:50px;">
                <uc1:_OrderTotal ID="otEstimate" runat="server" />
                <asp:UpdateProgress ID="UpdateProgress2" runat="server">
                    <ProgressTemplate>
                        <img src="./Images/AjaxWait.gif" alt="Please Wait" />
                        Loading...
                    </ProgressTemplate>
                </asp:UpdateProgress>
            </div>    
            </td>
          </tr>
        </table>
                </ContentTemplate>
            </asp:UpdatePanel>
        </pfweb:steparea>
        <pfweb:pagefooter runat="server" pageinsertselector="Shipping" />
        </form>
    </body>
    </html>

    quinta-feira, 17 de março de 2016 19:30
  • Quantas opções existem para o ddAddressItem?

    Faz um teste... remove o AutoPostBack="True" para ver se o alerta funciona corretamente. Pode ser que o listener (adicionado pelo .NET devido ao AutoPostBack="True") está afetando o seu listener

    segunda-feira, 21 de março de 2016 12:20
  • Bom dia Cesar

    Sim se eu tirar o AutoPostBack="True" o alerta funciona perfeitamente. 

    Porem como você viu no meu código eu preciso do AutoPostBack="True" para pode acionar o 

    OnSelectedIndexChanged="ddAddressItem_SelChanged" 

    Entendeu ?

    Tem alguma idéia de como  você pode me ajudar ?

    Fico no aguardo.

    Muito Obrigado.

    segunda-feira, 21 de março de 2016 12:47
  • Coloca esse seu Javascript em um arquivo externo e vê se funciona.

    Outra opção é remover o AutoPostBack="True"e adicionar isso ao seu javascript depois do if:

    __doPostBack('ddAddressItem', this.options[this.selectedIndex].value);


    • Marcado como Resposta Marcos SJ segunda-feira, 21 de março de 2016 13:52
    segunda-feira, 21 de março de 2016 13:11
  • Ricardo,

    Conforme o exemplo fornecido, essa chamada deve está dentro das tags do UpdatePanel e pelo exemplo que você adaptou a chamada está sendo feita fora dessas tags. Mova a chamada para dentro das tags do UpdatePanel, conforme exemplo e veja se funcionará.

    Obs.: crie uma página simples, copie e cole o exemplo fornecido e verá que o mesmo funcionará, daí só verificar o que você possa ter feito de diferente do exemplo.

    Abs,


    segunda-feira, 21 de março de 2016 13:35
  • Ricardo,

    Acho que seria melhor você dar continuidade no post anterior.

    https://social.msdn.microsoft.com/Forums/pt-BR/eee12ade-8220-4cdc-a04c-118be8e389a4/por-que-a-minha-funo-javascript-s-executada-apenas-1-vez-?forum=aspnetpt

    Abs,


    segunda-feira, 21 de março de 2016 13:41
  • Bom dia.

    Ricardo, recomendo incluir a referência do jQuery no teu projeto e trocar 

    window.onload = function() { }

    por

    function pageLoad() { }
    O método pageLoad() é executado TAMBÉM nos PostBacks, porém o window.onload, não (possivelmente por isso que só funciona na primeira vez que o código é executado).


    Att., Rafael Simor


    • Marcado como Resposta Marcos SJ segunda-feira, 21 de março de 2016 14:09
    • Editado SimorC segunda-feira, 21 de março de 2016 14:10 Correção ortográfica
    segunda-feira, 21 de março de 2016 14:04
  • Bom dia ricardoti2012,

    Tudo bem?

    Novamente peço que por gentileza, você não crie mais duplicações da mesma thread. Caso continue fazendo isso serei obrigado a reportar seu perfil de usuário. Crie uma thread e continue procurando auxílio na mesma thread até o fim. Até porque, isso vai te ajudar, pois os novos usuários a tentar te auxiliar vão poder ver o que já foi feito. Não problema algum em discordar da resposta marcada, mas não crie duplicações da mesma thread. E lembre-se, threads de "How to" serão modificadas para discussão geral, pois o fórum não presta suporte a "How to".

    Atenciosamente


    Marcos SJ

    Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.


    • Editado Marcos SJ segunda-feira, 21 de março de 2016 14:18
    segunda-feira, 21 de março de 2016 14:13
  • Boa Tarde SimorC

    Apenas colocando function pageLoad() já resolveu o problema.

    Você é fera. Valeu!!!!!!

    Obrigadooooooooo

    segunda-feira, 21 de março de 2016 16:39