2010-06-10 7 views
0

J'ai la même chose, il y a beaucoup de TextBoxes avec l'événement TextChanged ensemble et avec AutoPostback = true, et fonctionne dans tous les navigateurs (Chrome, Opera, Firefox 3.6) sauf dans IE 8, IE 6/7 je n'ai pas testé.TextBox ne se déclenche pas TextChanged Événement sur IE 8, AutoPostback est vrai

Je ne veux pas mettre l'événement onblur dans tous mes TextBoxs car il y a beaucoup de pages avec beaucoup de TextBox qui utilisent cet événement.

Description de

J'utilise un masterpage,

dans le ASPX j'ai

<asp:TextBox ID="txtCnpj" runat="server" CssClass="txt" Width="200px" 
    onkeyup="Mascara(this,Cnpj)" onkeydown="Mascara(this,Cnpj)" MaxLength="18" 
    AutoPostBack="true" ValidationGroup="txtCnpj" 
    OnTextChanged="txtCnpj_TextChanged"></asp:TextBox> 

dans les aspx.cs

protected void txtCnpj_TextChanged(object sender, EventArgs e) 
    { 
     if (CredorInvestimento.GetCredorInvestimento(txtCnpj.Text) != null) 
     { 
      ((TextBox)sender).Text = ""; 
      ((TextBox)sender).Focus(); 
      rfvCnpj.ErrorMessage = "Duplicado"; 
      Page.Validate(txtCnpj.ID); 
     } 
     else 
      txtNome.Focus(); 
    } 

Merci! Ps: Je n'aime vraiment pas asp.net Je passe plus de temps à corriger les erreurs qu'à développer de nouvelles fonctions.

ps: désolé pour mon anglais. Ps: si je supprime les événements onkeydown et onkeyup, le textchanged se déclenche dans IE, mais je reçois aussi ces événements.

+0

Pouvez-vous nous montrer le code de 'Mascara()'? – egrunin

+0

convenu - Je suppose que leur est probablement une erreur dans Mascara() qui empêche l'événement de publication de se produire dans IE. Avez-vous essayé de supprimer les événements onKeyDown et onKeyUp et de voir si la publication fonctionne? – Dan

Répondre

0

Vous êtes conscient que l'événement OnTextChanged ne se déclenche que lorsque vous quittez la zone de texte? Si vous souhaitez déclencher l'événement dans KeyUp, vous pouvez ajouter un __doPostBack au balisage et supprimer l'autopostback.

Vous pouvez utiliser cette méthode.

<asp:TextBox ID="txtCnpj" runat="server" CssClass="txt" Width="200px" 
    onkeyup="Mascara(this,Cnpj); _doPostBack('txtCnpj', '');" 
    MaxLength="18" ValidationGroup="txtCnpj" 
    OnTextChanged="txtCnpj_TextChanged"></asp:TextBox> 

Vous pouvez également utiliser

<asp:TextBox ID="txtCnpj" runat="server" CssClass="txt" Width="200px" 
     MaxLength="18" ValidationGroup="txtCnpj" 
     OnTextChanged="txtCnpj_TextChanged"></asp:TextBox> 

$('[id$="txtCnpj"]').on('keypress', function() { 
    Mascara(this, Cnpj); 
}) 
Questions connexes