ASP.Net文本框onblur事件

时间:2010-03-05 02:54:11

标签: c# asp.net-3.5

我有一个文本框,当用户选中文本框(onBlur事件)时,我需要验证其值(如果textbox的值为50,则在lblShowMsg中显示消息)。我似乎无法正确使用语法。

我的pageload事件中有这段代码:

protected void Page_Load(object sender, EventArgs e)
{
    txtCategory.Attributes.Add("onblur", "validate()"); 

}

但我似乎无法正确获取javascript代码。有什么建议吗?

3 个答案:

答案 0 :(得分:9)

在Code背后:(VB.NET)

在页面加载事件

txtAccountNumber.Attributes["onBlur"] = "IsAccNumberValid(" & txtAccountNumber.ClientID & ")";

其中txtAccountNumber是标记页面中TextBox的ID,并且您传递文本框的ClientID,因为JavaScript是客户端而不是服务器端。现在在标记页面(.aspx)中,在页面的head部分有这个javascript:

<script type="text/javascript">                     
function IsAccNumberValid(txtAccountNumber) {                                             
    if (txtAccountNumber.value.length < 6) {    
                      alert(txtAccountNumber.value);
            }    
        }    
</script>

答案 1 :(得分:5)

这是Page_Load中的实际代码吗?您需要使用控件的名称,而不是TextBox的类型名称。例如,您可能想尝试:

 textBox1.Attributes.Add("onblur", "validate();");

其中“textBox1”是您在标记中分配给textBox的ID。

此外,从Javascript开始,文本框的ID很可能在呈现到页面后发生了变化。如果您将控件传递给validate函数会更好:

function validate(_this)
{
    if (_this.value == "50")
        // then set the ID of the label.  
}

然后你可以像这样设置属性:

textBox1.Attributes.Add("onblur", "validate(this);");

最后,如果您在Javascript中执行任何操作,我强烈建议您使用JQuery库。它将使您的生活更轻松10倍。

答案 2 :(得分:2)

这很有效。

Textbox1.Attributes.Add( “的onblur”, “的javascript:警报( 'AAA');”);

确保功能位于页面的脚本部分。


我的页面

    

<script type="text/javascript">
    function Validate() {

        alert('validate');

    }

    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:TextBox ID="Textbox1" runat="server"></asp:TextBox>
        <asp:Button ID="Button1" runat="server" Text="Button" />
    </div>
    </form>
</body>
</html>

背后的代码

public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            Textbox1.Attributes.Add("onblur","Validate();");
        }
    }