-1

ASP ページがあり、上部にフィルター テキスト ボックスがあります。これらの 3 つのテキスト ボックスは、その中にテキストが表示されます (何を入力するか)。テキストボックスがフォーカスを得たときにすべてのテキストを選択するコードが既に追加されていますが、コントロールがフォーカスを失ったときに、ある意味で正反対のことをする必要があります。ここでの目標は、ユーザーが有効なフィルター値を入力した場合を除き、常にテキスト ボックス フィルターに既定のテキストが入力されるようにすることです。

基本的

control.text = string.empty および control.lostfocus の場合、テキストを「デフォルト」に戻します end if

これまでのところ、ページの読み込み時にこのコードがあります...

    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の初心者なので、何が起こっているのか正確にはわかりません。この単純なロジックを機能させる方法についてのアイデアはありますか?

4

2 に答える 2

0

これは、次のようなものです。

txtMonthFilter.Attributes.Add("onBlur", "javascript: if (this.value == """") {this.value = ""Enter Month""}")
于 2012-11-13T16:52:31.373 に答える
0
you can use jquery:

$('input[id$="txtMonthFilter"]').blur( function () {
   if ($(this).val() == '') $(this).val('Enter Month');
});
于 2012-11-13T17:07:06.787 に答える