一旦失去焦点,如何重置webcontrol.textbox.text?

时间:2012-11-13 16:48:09

标签: javascript asp.net vb.net-2010 asp.net-webcontrol

我有一个asp页面,我在顶部有过滤文本框。这3个文本框中包含文本(说明要输入的内容)。我已经添加了代码以在文本框获得焦点时选择所有文本但现在我需要在控件失去焦点时执行完全相反的操作。这里的目标是使文本框过滤器始终用默认文本填充,除非用户输入了有效的过滤器值。

基本上

如果是control.text = string.empty和control.lostfocus那么 将文本设置回“默认” 结束如果

到目前为止,我在页面加载时有这段代码......

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    If Not IsPostBack Then
        txtAcctFilter.Attributes.Add("onFocus", "JavaScript:this.select();")
        txtMonthFilter.Attributes.Add("onFocus", "JavaScript:this.select();")
        txtYearFilter.Attributes.Add("onFocus", "JavaScript:this.select();")
        'txtAcctFilter.Attributes.Add("onBlur", )
        'txtMonthFilter.Attributes.Add("onBlur", txtMonthFilter.Text = "Enter Month")
        'txtYearFilter.Attributes.Add("onBlur", txtYearFilter.Text = "Enter Year")
        Populate()
    End If
End Sub

评论出的3行是我的尝试,但我相信它们是在控件上还原的属性之间的问题。我是javascript的noobie所以不确定那里到底发生了什么。关于如何让这个简单的逻辑工作的任何想法?

2 个答案:

答案 0 :(得分:0)

这将是这样的:

txtMonthFilter.Attributes.Add("onBlur", "javascript: if (this.value == """") {this.value = ""Enter Month""}")

答案 1 :(得分:0)

you can use jquery:

$('input[id$="txtMonthFilter"]').blur( function () {
   if ($(this).val() == '') $(this).val('Enter Month');
});