文本框textchange在asp.net c#中不起作用

时间:2015-07-11 16:22:58

标签: javascript c# asp.net

我的弹出页面中有TextBox,我需要做的是检查弹出窗口中的TextBox是否包含文本,例如TextBox.Text.Equals("Admin");

这是TextBox定义:

<asp:TextBox ID="TextBox1" runat="server" Height="35px" 
      ontextchanged="TextBox1_TextChanged" AutoPostBack="true"
      style="text-align: right; font-size: x-large" Width="200px">
</asp:TextBox>

protected void TextBox1_TextChanged(object sender, EventArgs e)
{
    if(TextBox1.Text.Equals("Admin"))
    {
        Page.ClientScript.RegisterOnSubmitStatement(typeof(Page), "closePage", "window.onunload = CloseWindow();");
    }
}

文本更改时,TextBox1_TextChanged的功能无法获取。

我需要做的是,当输入一些文本时关闭窗口,任何人都可以帮助我和/或建议任何其他解决方案来解决这个问题吗?我不需要按任何按钮关闭窗口

(文本将使用读卡器输入文本框,因此我需要关闭它而不需要点击任何按钮)

非常感谢你

2 个答案:

答案 0 :(得分:0)

我认为文本更改事件应该在客户端处理。文本是一个非常不稳定的值,想象一下当你按一个键时到服务器端是什么意思。表现非常糟糕。

答案 1 :(得分:0)

只有在更改文本框的内容并将光标移出控件时,才会触发textbox的TextChanged事件。如果您的文本由读卡器输入文本框,则光标将保留在文本框内。输入文本后,尝试单击文本框外部或按Enter或Tab键,检查是否触发了TextChanged事件。如果事件被触发,请确保在Page_Load事件中未清除文本框文本。你知道使用IsPostBack。