2013-10-25 4 views
0

У меня есть текстовое поле, при нажатии на которую я хочу, чтобы текст выделить:Выделив элемент управления TextBox сервера на фокус

<asp:TextBox ID="searchInput" runat="server" ></asp:TextBox> 

Я пытаюсь добавить функциональность с помощью C#:

protected void Page_Load(object sender, EventArgs e) 
{ 
    searchInput.Attributes.Add("onfocus", "javascript:this.select();"); 
} 

Я не получив желаемого результата. Когда я нажимаю кнопку, текст не выделяется. Что я делаю неправильно и как это исправить?

Edit:

Для уточнения я хочу текст выбранного.

+0

Что вы имеете в виду под "изюминкой"? Вы хотите изменить цвет фона в текстовом поле? Цвет текста? Вы хотите, чтобы текст был выбран так, как будто пользователь выбрал его с помощью мыши? – gilly3

+0

Я хочу, чтобы текст был выбран, извините за неясность. –

+0

Это работает, если вы вставляете его в мое тестирование, но не нажимаете, потому что когда вы нажимаете, вы изменяете позицию каретки. – nothingisnecessary

ответ

2

Когда вы нажимаете на кнопку, вы можете изменить положение каретки и, следовательно, изменить диапазон выбора текста.

Попробуйте это:

protected void Page_Load(object sender, EventArgs e) 
{ 
    searchInput.Attributes.Add("onfocus", "var elem=this;setTimeout(function(){elem.select();},0);"); 
} 

Заставив выжидательный через setTimeout() вы можете select() текст после родных пожаров событий фокуса и установить диапазон выбора обратно к тексту value.

Пример скрипку: http://jsfiddle.net/mxn3F/

0

Я всегда подчеркиваю, меняя BackColor на желтый. Вы можете попробовать, чтобы он работал.

+0

Я считаю, что ОП пытается выделить текстовое поле, чтобы они могли стереть то, что там есть. Установка фона на желтый цвет не поможет. Тем более, что нет примера кода о том, как это сделать. – helios456

+0

Я заметил, что после того, как я опубликовал это, я попытался удалить это сообщение. Интернет ужасен в моем доме, я не должен его удалять. – deathismyfriend

0

Вы должны попробовать следующий код:

<asp:TextBox ID="searchInput" runat="server" OnFocus="this.style.borderColor='red'" OnBlur="this.style.borderColor=''"></asp:TextBox> 
+0

Это не выбирает текст. В вопросе не упоминается изменение цвета рамки в текстовом поле. – gilly3

+0

Извините, я неправильно понял вопрос. Вопрос был не очень ясен, прежде чем делать редактирование. –

Смежные вопросы