Как сбросить webcontrol.textbox.text, когда он потерял фокус?
У меня есть страница 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, поэтому не уверен, что именно там происходит. Любые идеи о том, как я могу заставить эту простую логику работать?
2 ответа
Это было бы что-то вроде этого:
txtMonthFilter.Attributes.Add("onBlur", "javascript: if (this.value == """") {this.value = ""Enter Month""}")
you can use jquery:
$('input[id$="txtMonthFilter"]').blur( function () {
if ($(this).val() == '') $(this).val('Enter Month');
});