【问题标题】:Disable (or) Prevent cursor placement in ASP Read Only textbox禁用(或)阻止光标放置在 ASP 只读文本框中
【发布时间】:2014-08-15 03:40:17
【问题描述】:

在我的解决方案中,有一个 ASP.NET 只读文本框。单击它时,会插入闪烁的光标,使用户相信他们可以编辑。

有人可以建议我避免这种情况的最佳方法吗?

我尝试了很多方法,但没有用。

【问题讨论】:

  • 必须是TextBox吗?您会找到blur() 的解决方法,尽管它不是万无一失的——例如IE11

标签: javascript asp.net asp-classic


【解决方案1】:

以下方法将在 texbox 获得焦点后立即移除 Blinking 光标:

<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() 方法用于移除元素的焦点。

警告: Internet Explorer 11 下使用 Blur() 可能不起作用。感谢@EdSF 的观察。

我建议你改用Label,因为这样就没有Blinking cursor 或cursor,句号!

<asp:Label   ID="Label1" 
         runat="server" 
         ReadOnly="true" 
         Text="This is a test!" BorderColor="Black" BorderWidth="1" />

当使用 Label 时,您可能必须应用一些 CSS 以使其看起来像 TextBox。您还可以禁用 TextBox。但是,您可能必须应用 CSS 以使其看起来不被禁用。

【讨论】:

  • 非常感谢您的方法。 .甚至我也使用过相同的。 .actually 我不想禁用文本框广告,它会影响其中文本的可读性。 .
  • 通过使用文本框的这个 blur () 方法 onclick 属性,我失去了焦点。 .我的意思是我的 asp 只读文本框在 ajax 模式弹出扩展器中。 .因此,如果我单击文本框并触发 blur () 方法,我将失去该弹出窗口的焦点。 .我需要在弹出窗口本身。 .这就是我需要的。 .!!!提前致谢
【解决方案2】:

您是否尝试过在文本框上将 enabled 属性设置为 false?它想:

<asp:Textbox Id="textbox1" runat="server" Enabled="False" Text="Text">

文本将出现在文本框中,您仍然可以突出显示文本,但不能将光标放在框中。如果您希望状态在某个时候更改为 true,也可以从后面的代码中设置 enabled 属性。

【讨论】:

  • 非常感谢您的方法。 .如果我禁用文本框,文本框内文本的可读性会受到影响。 .所以我不想这样做......并且来标签,我的客户不希望显示为标签......他希望显示为文本框而不允许将光标放置在其中。 .
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-03-26
  • 1970-01-01
  • 1970-01-01
  • 2011-12-16
  • 2012-05-19
  • 2014-10-24
  • 2014-07-06
相关资源
最近更新 更多