#javascript #asp.net #asp-classic
#javascript #asp.net #asp-классический
Вопрос:
В моем решении есть один ASP.NET Текстовое поле только для чтения. При нажатии на него вставляется мигающий курсор, который заставляет пользователя полагать, что он может редактировать.
Может кто-нибудь, пожалуйста, предложить мне наилучший подход, чтобы избежать этого?
Я пробовал много подходов, но бесполезно.
Комментарии:
1. Это должно быть a
TextBox
? Вы найдетеblur()
обходные пути, хотя они не будут надежными — например, IE11
Ответ №1:
Вы пробовали установить для атрибута enabled значение false в текстовом поле? Хотелось бы, как:
<asp:Textbox Id="textbox1" runat="server" Enabled="False" Text="Text">
Текст появится в текстовом поле, и вы все равно можете выделить текст, но вы не можете поместить курсор в поле. Вы также можете установить свойство enabled из кода, если хотите, чтобы в какой-то момент статус изменился на true.
Комментарии:
1. Огромное спасибо за ваш подход. . Если я отключу текстовое поле, будет нарушена читаемость текста внутри текстового поля. . Поэтому я не хочу этого делать … и, перейдя к label, мой клиент не предпочел бы, чтобы его отображали как label .. он хотел, чтобы его отображали как текстовое поле, не позволяя размещать в нем курсор. .
Ответ №2:
Следующий подход удалит мигающий курсор сразу после того, как текстовое поле получит фокус:
<asp:TextBox onFocus="this.blur()"
ID="TextBox1"
runat="server"
ReadOnly="true"
Text="This is a test!">
</asp:TextBox>
В любом текстовом поле просто добавьте onFocus=»this.blur()»
Этот подход использует метод HTML DOM Blur (): Метод blur() используется для удаления фокуса с элемента.
Использование Blur () может не работать в Internet Explorer 11 Внимание:.. Благодаря наблюдению @EdSF.
Я предлагаю вам вместо этого использовать метку, потому что таким образом нет мигающего курсора или курсора, точка!
<asp:Label ID="Label1"
runat="server"
ReadOnly="true"
Text="This is a test!" BorderColor="Black" BorderWidth="1" />
При использовании метки вам, вероятно, придется применить некоторый CSS, чтобы она выглядела как текстовое поле. Вы также можете отключить текстовое поле. Однако вам, возможно, придется применить CSS, чтобы он НЕ выглядел отключенным.
Комментарии:
1. Большое спасибо за ваш подход. . Даже я использовал то же самое. . на самом деле я не хочу отключать объявление текстового поля, это повлияет на читаемость текста внутри него. .
2. Используя этот метод blur () onclick атрибут текстового поля, я теряю фокус на этом. . Я имею в виду, что мое текстовое поле asp, доступное только для чтения, находится в расширителе модального всплывающего окна ajax. . Поэтому, если я нажимаю на текстовое поле и запускаю метод blur (), я теряю фокус этого всплывающего окна. . Мне нужно было быть в самом всплывающем окне. . Это то, что мне нужно. .!!! Заранее спасибо