TextBox не запускает событие TextChanged в IE 8, AutoPostback имеет значение true - PullRequest
0 голосов
/ 10 июня 2010

У меня тоже самое, есть много TextBox с установленным событием TextChanged и с AutoPostback = true, и работает во всех браузерах (Chrome, Opera, Firefox 3.6), кроме IE 8, IE 6/7.test.

Я не хочу помещать событие onblur во все мои TextBox, потому что есть много страниц со многими TextBox, которые используют это событие.

Описание

I 'm используя masterPage,

в aspx у меня есть

<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>

в 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();
    }

Спасибо!

ps: Iдействительно не нравится asp.net. Я трачу больше времени на исправление ошибок, чем на разработку новых функций.

ps: извините за мой английский.

ps: если я удалю события onkeydown и onkeyup,текстовый огонь в IE, но я на самом деле тоже это делаю.

1 Ответ

0 голосов
/ 21 ноября 2016

Вам известно, что событие OnTextChanged возникает только при выходе из текстового поля?Если вы хотите запустить событие в KeyUp, вы можете добавить __doPostBack к разметке и удалить автоответчик.

Вы можете использовать этот способ.

<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>

Или вы также можете использовать

<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);
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...