Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > выделение текста в textbox


Автор: kizune 23.7.2007, 14:00
здравствуйте. smile 
можно ли как-то совместить

Код

<asp:TextBox runat="server" onclick="javascript:select()" ID="selectText" TextMode="MultiLine"> </asp:TextBox>


и

Код

function select()
{
document.getElementById("selectText").focus();
document.getElementById("selectText").select();
}


дабы выделить текст в textbox?


Автор: Mymik 23.7.2007, 16:24
kizune, ошибка возникает из-за того что ID на стороне сервера и на стороне клиента это разные вещи.
Потому в JS нужно написать
Код

function select()
{
document.getElementById("<%=selectText.ClientID%>").focus();
document.getElementById("<%=selectText.ClientID%>").select();
}

Но, ИМХО это не удобно, потому лучше переделать это все и написать
Код

<asp:TextBox runat="server" onclick="select(this)" ID="selectText" TextMode="MultiLine"> </asp:TextBox>

Код

function select(obj)
{
obj.focus();
obj.select();
}

Получается, что this это указатель на тот объект из которого вызвали этот скрипт. Псевдокласс javascript: удаляем, потому как он там не нужен из-за того что он используется только для href. дабы указать, что это в href содержится скрипт, а не url.

Но мы не остановимся на этом и пойдем еще дальше, потом как кода слишком мало, то лучше запускать все это сразу в TextBox
Код

<asp:TextBox runat="server" onclick="this.focus();this.select();" ID="selectText" TextMode="MultiLine"> </asp:TextBox>

Это будет самый компактный и удобный способ.

Автор: kizune 24.7.2007, 08:54
и здесь большое спасибо smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)