ASP.NET / HTML - 使用光标时的文本区域光标位置

Posted

技术标签:

【中文标题】ASP.NET / HTML - 使用光标时的文本区域光标位置【英文标题】:ASP.NET / HTML - textarea cursor position when using cursors 【发布时间】:2011-12-21 05:41:24 【问题描述】:

在“现代”网络浏览器中,当用户在多行输入中按下向上和向下箭头键时,光标会上下移动。在第一行时,按向上箭头会使光标回到行首。这是 FF、Chrome 等中的标准行为。

在 IE7 中,情况有所不同。当光标位于第一行时,按向上箭头不会执行任何操作。光标还在原来的位置。

我希望所有浏览器中的 IE7 行为。我怎样才能做到这一点?提前致谢。

【问题讨论】:

【参考方案1】:

这将意味着相当多的工作和调整,但您也许可以使用jQuery Caret,一个 jQuery 插件。

您可以使用它来获取和设置您的光标位置。

首先,你可以在你的 textarea 中捕捉 keydown 事件

<textarea id="myTextArea" value="some text" ></textarea>

使用 jQuery 来检查它是使用向上箭头

$("#myTextArea").bind("keydown", function(e) 
    var code = e.keyCode || e.which;
    if(code == 38)  // Arrow up
        .... code here ....
    
);

然后您应该使用 Caret 编写代码,1. 记住最后一个光标位置,以及 2. 如果按下向上箭头键并且结果位置为 0,则将光标位置重置为最后一个记住的位置。然后为底部/向下部分编写类似的代码。

抱歉,我无法对其进行编程,但这样的事情应该可以工作。

【讨论】:

以上是关于ASP.NET / HTML - 使用光标时的文本区域光标位置的主要内容,如果未能解决你的问题,请参考以下文章

使用 Jquery 自动完成时的 IE11 内存泄漏 (asp.net)

ASP.Net MVC:如何自定义验证消息显示

怎样在ASP。NET里做到当鼠标放在文本框时立刻激发事件查询数据库

使用 POST 向 ASP.NET Core 传递数据时的长度限制与解决方案

选择所有文本时的 Xamarin 条目光标位置

获取动态更改的 asp.net 标签的值