none
TextBox + priceformat RRS feed

  • Pergunta

  • Estou usando a biblioteca do jquery priceformat para fazer formatação de campos numéricos porém ao utiliza-la com texbox com a propriedade autopostback=true o evento textchange não é acionado conforme o código a seguir 

    <head runat="server">
        <script src="<%= Page.ResolveUrl("~/Scripts/jquery-1.8.2.min.js")%>" type="text/javascript"></script>
        <script src="<%= Page.ResolveUrl("~/Scripts/jquery.price_format.1.7.min.js") %>" type="text/javascript"></script>
        <script language="javascript" type="text/javascript">
    
    
            $(document).ready(function () {
                $('.preco').priceFormat({
                    prefix: 'R$ ',
                    centsSeparator: ',',
                    thousandsSeparator: '.',
                    limit: 10
                });
            });
    
        </script>
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <table>
                <tr>
                    <td colspan="2" class="style2">
                        Macoratti.net
                    </td>
                </tr>
                <tr>
                    <td>
                        Nome
                    </td>
                    <td>
                        <asp:TextBox ID="txtNome" runat="server" Width="211px" class="preco" AutoPostBack="true" OnTextChanged="txtNome_TextChanged"></asp:TextBox>
                    </td>
                </tr>
                <tr>
                    <td>
                        Email
                    </td>
                    <td>
                        <asp:TextBox ID="txtEmail" runat="server" Width="211px"></asp:TextBox>
                    </td>
                </tr>
                <tr>
                    <td>
                        URL
                    </td>
                    <td>
                        <asp:TextBox ID="txtURL" runat="server" Width="211px"></asp:TextBox>
                    </td>
                </tr>
                <tr>
                    <td>
                        Cep
                    </td>
                    <td>
                        <asp:TextBox ID="txtCep" runat="server"></asp:TextBox>
                    </td>
                </tr>
            </table>
            <br />
            <asp:Button ID="btnSubmit" OnClientClick=" return validate()" runat="server" Text="Enviar" Width="176px" />
        </div>
        </form>
    </body>
    </html>

      protected void txtNome_TextChanged(object sender, EventArgs e)
            {
                Response.Write(txtNome.Text);
            }

    quarta-feira, 14 de novembro de 2012 17:52

Respostas

  • A outra alternativa é usar a função AutoNumeric que se encontra no link http://www.decorplanit.com/plugin/.

    <head runat="server">
        <script src="<%= Page.ResolveUrl("~/Scripts/jquery-1.8.2.min.js")%>" type="text/javascript"></script>
        <script src="<%= Page.ResolveUrl("~/Scripts/autoNumeric-1.7.5.js") %>" type="text/javascript"></script>
        <script language="javascript" type="text/javascript">
    
            jQuery(function ($) {
                $('.auto').autoNumeric({ aSep: ',', aDec: '.' });
            }); 
    
        </script>
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <table>
                <tr>
                    <td colspan="2" class="style2">
                        Macoratti.net
                    </td>
                </tr>
                <tr>
                    <td>
                        Nome
                    </td>
                    <td>
                        <asp:TextBox ID="txtNome" runat="server" Width="211px" AutoPostBack="true" 
                            class="auto" ontextchanged="textNome_TextChanged"></asp:TextBox>
                    </td>
                </tr>
                <tr>
                    <td>
                        Email
                    </td>
                    <td>
                        <asp:TextBox ID="txtEmail" runat="server" Width="211px"></asp:TextBox>
                    </td>
                </tr>
                <tr>
                    <td>
                        URL
                    </td>
                    <td>
                        <asp:TextBox ID="txtURL" runat="server" Width="211px"></asp:TextBox>
                    </td>
                </tr>
                <tr>
                    <td>
                        Cep
                    </td>
                    <td>
                        <asp:TextBox ID="txtCep" runat="server"></asp:TextBox>
                    </td>
                </tr>
            </table>
            <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
            <br />
            <asp:Button ID="btnSubmit" OnClientClick=" return validate()" runat="server" Text="Enviar"
                Width="176px" />
        </div>
        </form>
    </body>
    </html>

    quarta-feira, 14 de novembro de 2012 19:32

Todas as Respostas

  • Tente colocar seu javascript assim:

     $(document).ready(function () {
    	function RegistrarPriceFormat()
    	{
                $('.preco').priceFormat({
                    prefix: 'R$ ',
                    centsSeparator: ',',
                    thousandsSeparator: '.',
                    limit: 10
                });
    	}
    	RegistrarPriceFormat();
      });

    E dentro do método txtNome_TextChanged você coloca:

    ScriptManager.RegisterClientScriptBlock(Me.Page, Me.Page.GetType(), "RegistrapriceFormat", " RegistrarPriceFormat(); ", True)



    http://samuelcazelli.blogspot.com/

    quarta-feira, 14 de novembro de 2012 18:56
  • Não funcionou, continuou com o mesmo comportamento.
    quarta-feira, 14 de novembro de 2012 19:07
  • Tenta colocar um alert no javascript para ver se está sendo chamado corretamente:

    $(document).ready(function () {
    	function RegistrarPriceFormat()
    	{
                alert('passei');
                $('.preco').priceFormat({
                    prefix: 'R$ ',
                    centsSeparator: ',',
                    thousandsSeparator: '.',
                    limit: 10
                });
    	}
    	RegistrarPriceFormat();
      });

    No caso a mensagem tem q ser exibida no carregamento da página, e depois do postback.


    http://samuelcazelli.blogspot.com/

    quarta-feira, 14 de novembro de 2012 19:23
  • A outra alternativa é usar a função AutoNumeric que se encontra no link http://www.decorplanit.com/plugin/.

    <head runat="server">
        <script src="<%= Page.ResolveUrl("~/Scripts/jquery-1.8.2.min.js")%>" type="text/javascript"></script>
        <script src="<%= Page.ResolveUrl("~/Scripts/autoNumeric-1.7.5.js") %>" type="text/javascript"></script>
        <script language="javascript" type="text/javascript">
    
            jQuery(function ($) {
                $('.auto').autoNumeric({ aSep: ',', aDec: '.' });
            }); 
    
        </script>
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <table>
                <tr>
                    <td colspan="2" class="style2">
                        Macoratti.net
                    </td>
                </tr>
                <tr>
                    <td>
                        Nome
                    </td>
                    <td>
                        <asp:TextBox ID="txtNome" runat="server" Width="211px" AutoPostBack="true" 
                            class="auto" ontextchanged="textNome_TextChanged"></asp:TextBox>
                    </td>
                </tr>
                <tr>
                    <td>
                        Email
                    </td>
                    <td>
                        <asp:TextBox ID="txtEmail" runat="server" Width="211px"></asp:TextBox>
                    </td>
                </tr>
                <tr>
                    <td>
                        URL
                    </td>
                    <td>
                        <asp:TextBox ID="txtURL" runat="server" Width="211px"></asp:TextBox>
                    </td>
                </tr>
                <tr>
                    <td>
                        Cep
                    </td>
                    <td>
                        <asp:TextBox ID="txtCep" runat="server"></asp:TextBox>
                    </td>
                </tr>
            </table>
            <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
            <br />
            <asp:Button ID="btnSubmit" OnClientClick=" return validate()" runat="server" Text="Enviar"
                Width="176px" />
        </div>
        </form>
    </body>
    </html>

    quarta-feira, 14 de novembro de 2012 19:32