不允许在文本区域中换行

2024-06-25

使用 jQuery 如何不允许插入新行(通过按 Enter 或复制文本)- 在半伪代码中...

$('textarea').keydown(function(){
 $(this).remove_new_lines();
});

Thanks!

EDIT:

是像下面这样粗暴还是有更好的方法?

function removeNL(s){ 
  return s.replace(/[\n\r\t]/g,); 
}

$('textarea').keydown(function(){
 $(this).val(removeNL($(this).val));
});

有两种方法可以做到这一点:在输入时检查每个字符,如果您不希望它显示,则返回 false,或者在每次更改/键入时您可以检查整个内容。虽然前者的性能更高,但在用户粘贴包含不需要的字符的内容的情况下它不起作用。因此,我建议使用后一种方法,如下所示(这将禁止所有垂直空白):

使用 jQuery:

$('textarea').on('keyup', function(){
  $(this).val($(this).val().replace(/[\r\n\v]+/g, ''));
});

或者使用纯 JavaScript (ES2015/ES6):

constrainInput = (event) => { 
  event.target.value = event.target.value.replace(/[\r\n\v]+/g, '')
}

document.querySelectorAll('textarea').forEach(el => {
  el.addEventListener('keyup', constrainInput)
})

另一种方法是等到焦点离开文本区域,然后应用转换。这可以避免使用合成的、有条件的活动键盘控件的操作系统上的卡顿行为。不过,用户在离开该字段之前都会看到换行符,因此请注意。为此,只需更改上面的事件监听器来监听blur而不是keyup.

如果您使用 React,那么您已经制作了它,因为它避免了移动浏览器的问题,同时让您可以使用受控组件在值更改时对其进行管理:

class TextArea extends React.PureComponent {
  state = {
    value: ""
  };

  handleChange = event => {
    const value = event.target.value.replace(/[\r\n\v]+/g, "");
    this.setState({ value });
  };

  render() {
    return <textarea onChange={this.handleChange} value={this.state.value} />;
  }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

不允许在文本区域中换行 的相关文章

  • JavaScript 变量带有一个我需要在 Html.ActionLink 中使用的 ID

    我的 jQuery 代码中有一个 JavaScript 变量 其中包含一个我需要在我的Html ActionLink但它不起作用 Html ActionLink Genomf r AnswerForm AnswerNKI new id go
  • 使用 mongoDB 插入子文档

    我收集了以下文件 id 2 workspace name 1 widgets name 2 widgets name 3 widgets name 4 widgets 我怎样才能插入 id 1 blabla blabla 在 小部件 中的
  • jQuery:“$(this).next().next()”有效,但“$(this).next('.div')”无效

    好吧 我正在尝试将这组信息单独隐藏 这有效 arrow click function this next next slideToggle img class arrow src https via placeholder com 40 h
  • `forEach` 函数中的 `return` 关键字是什么意思? [复制]

    这个问题在这里已经有答案了 button click function 1 2 3 4 5 forEach function n if n 3 it should break out here and doesn t alert anyth
  • 在 json 对象中执行 javascript 代码?

    有远吗 所以像这样 key1 val1 key2 val2 some code document getElementById someid innerHTML test 那么 some code 会在没有任何用户干预的情况下执行吗 No
  • 为什么 jQuery 对损坏标记的解释与浏览器不同?

    我之前已经回答过这个问题 https stackoverflow com a 19101905 1253312 但我并不完全理解why答案是正确的 答案的要点 p p function jqrender html a href http w
  • Javascript CORS 图像/画布操作

    我正在尝试从另一个已配置为允许 CORS 的域检索图像 并操纵像素 然后我想显示结果并能够操纵结果 我可以在我请求的图像上使用 getImageData 和 toDataURL 所以我知道服务器部分可以工作 但是 当我尝试将图像的 src
  • 将jQueryUI datepicker附加到div(显示位置错误)

    我在输入上使用 jQueryUI datepicker 默认情况下 jQueryUI 会附加 ui datepicker div to the body该文件的 有问题的输入位于屏幕上的 弹出 div 中 这意味着该 div 之外的任何点击
  • 如何在 Google 地图上旋转叠加图像?

    我正在尝试将一系列叠加层放置到 Google 地图上 我正在跟随地面覆盖层的示例代码 https developers google com maps documentation javascript examples groundover
  • jquery 按钮点击背景颜色变化

    为什么这不起作用 jquery button click function go css background color yellow html table tr td hello td table gt tr table
  • a:not(a:not([href])) 选择器

    我希望无论何时 某个操作都与锚标记的点击事件相关联href属性 不开始于mailto and 不以 and 存在任何值 包括空 所以我正在尝试这段代码 a href example com example com a a href Some
  • 暂停或停止整页而不破坏

    我有一个正常滚动的页面 页面上有一个锚点 它会弹出一个模式 我在其中初始化 fullpage js 到目前为止 效果很好 但是当用户单击关闭图标时 我希望模式窗口关闭 并使 fullpage js 暂停或停止 以便禁用全页滚动效果 除非用户
  • javascript 中的工厂模式与构造函数模式[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我看到了关于 javascript 设计模式的教程 虽然教程很好 但它给我留下了很少的问题 正如我所见 工厂和构造函数产生相同的结果
  • 在 ReactJS 中更改 URL onClick

    在我的项目中我有一个TabComponent它显示 3 个选项卡 首页 热门 全部 现在 我正在使用context反应维持 activetab它存储当前选项卡 toggleTab改变的方法activetab using setState 选
  • 提交外部有 INPUT 的表单,并修改值后

    我有一个form 有几个
  • 解析字符串:提取单词和短语 [JavaScript]

    我需要在以空格分隔的术语列表中支持确切的短语 用引号引起来 因此 用空格字符分割相应的字符串已经不够了 Example input foo bar lorem ipsum baz output foo bar lorem ipsum baz
  • Lighthouse 多个 URL

    我需要对一个网站进行全面审核 但我想知道是否有任何方法可以让 Lighthouse 做到这一点 我知道他们不支持完整的站点审核或多个 URL 但我发现可以使用 bash 脚本来完成 因此 我将不胜感激对此案的任何帮助 或者您可能会推荐任何灯
  • HTML 画布从 getImageData 返回“偏离一些”字节

    我找到getImageDataHTML 画布似乎返回不正确的字节值 我使用以下 Python 代码生成了 1x1 px 图像 from PIL import Image import numpy as np a np array 12 18
  • 如何从 Instagram 的 media_preview 原始数据重新创建预览?

    如果您从 Instagram 的 API 获取 JSON 数据 您会发现media previewkey 其值是一些 Base64 编码的数据 它看起来确实像一些非常小的预览二进制数据 也许是压缩的 Take 这个帖子 https www
  • Promise链基本问题

    我正在尝试理解 Promise 我创建了一些有效的承诺链 而另一些则无效 我已经取得了进步 但显然缺乏基本概念 例如 以下承诺链不起作用 这是一个愚蠢的例子 但说明了问题 我正在尝试在链中使用 Node 的函数 randomBytes 两次

随机推荐

  • Microsoft Graph API 日历 API 空 SeriesMasterId

    解决方案如下 我的朋友们 这是一个漂亮的 msft 图形 api 调用 可以通过非空 SeriesMasterId 过滤前 50 个日历结果 另请记住 如果未定义此前 50 个过滤器 则返回的 json 仅显示前 10 个结果从您的日历中匹
  • 如何在MySQL查询结果中显示序号

    我有一些简单的查询 SELECT foo bar FROM table 我想你现在的结果是什么样的 我想要做的是根据查询结果中出现的数据数量来显示一些序列号 就像AUTO INCREMENT 这并不意味着我想出示身份证 我想要的结果是这样的
  • 使用迭代器遍历和取消遍历 std::vector 最干净的方法是什么?

    我遇到一种情况 我正在穿过一个向量 做一些事情 std vector
  • Blazor 应用程序随机出现“错误:电路无法初始化”

    我目前正在开发 Blazor 服务器端应用程序 在启动页面后立即遇到随机错误 当我按 F5 按钮或单击索引页面上的任何链接时 页面将重新加载 并且错误不会再次出现 错误消息非常笼统 我真的不知道从哪里开始调试 即使我完全删除 Index r
  • 让 VBScript 检查文件名中包含特定单词的文件,然后查找并删除该文件

    我想知道是否有一种方法可以使我的 vbs 脚本可以检查并删除名称中含有特定单词的任何文件 这是我到目前为止所拥有的 x MsgBox Searching for any infected files 64 Search DIM filesy
  • Laravel 5 多租户应用程序具有单独的数据库 - 用户可以访问多个安装

    在过去的几年里 我开发了一个非常定制的 PHP MySQL 应用程序 用于许多客户 到目前为止 我一直在为每个客户端创建一个新的数据库和新的安装 这里第一个明显的问题是让多个安装保持最新的任何代码更改 第二个问题是每次安装都有大量用户 对于
  • ImageButton 音板 android 应用程序

    我刚刚开始制作我的第一个音板 基本上这就是我到目前为止所拥有的 除了我有 40 个声音 有谁知道更好的方法来做到这一点 我必须去赴约 但我会在今天晚些时候回来回复 谢谢任何能提供帮助的人 音板 包 com soundboard app 导入
  • CSS - 将 div 与文本框右侧对齐

    div div style width 250px padding 20px 6px 6px 6px div div
  • 服务器时间不对

    我来自英国 在美国托管 我联系了我的主机并说我的服务器时间设置为比 GMT 慢 6 小时 他们说我需要在我的 CMS 中更改此设置 我该怎么做呢 每当我输入 now 时 我都会得到错误的时间 以前从未见过这个 有人可以提供任何建议吗 您可以
  • Haskell 中的 Monad 和 Purity

    我的问题是 Haskell 中的 monad 是否真正保持了 Haskell 的纯度 如果是的话 又是如何保持的 我经常读到副作用是如何不纯粹的 但有用的程序 例如 I O 需要副作用 下一句指出 Haskell 对此的解决方案是 mona
  • 存储 setInterval 的值

    如果我有这样的代码 count 0 count2 setInterval count 1000 count2 变量始终设置为 2 而不是 count 的实际值 因为它每秒都在增加 我的问题是 您甚至可以存储 seInterval 方法的值吗
  • DropDelegate Safari 拖动图像

    我正在尝试实施DropDelegate模式以允许将图像拖到我的视图中并加载它们 这对于取景器中的图像效果很好 但是当将图像从 safari 拖到我的视图中时 这不起作用 我注意到typeIdentifier or UTType所提供的信息
  • zip 样式 @repeat 嵌套形式

    repeat非常有用 然而 我遇到了嵌套表单的障碍 我需要制作一个比赛日程表 它有 2 个属性 日程数据 比赛日期 时间 地点 对手 和提交球队备注 例如 由于冬季风暴 1 月 7 日的比赛已移至1 月 9 日在 夏威夷 表单映射基于 ca
  • Eclipse DLTK:将向导添加到 ScriptExplorerPart 的“新建”菜单

    我正在尝试将向导条目添加到ScriptExplorerPartEclipse 的动态语言工具包 这些向导可以从File gt New gt Other 所以至少我知道它们有效 它们是使用扩展点添加的org eclipse ui newWiz
  • ocx_Oracle ORA-12541 tns 无侦听器

    我尝试通过cx Oracle连接到远程oracle服务器 db cx Oracle connect 用户名 密码 dsn tns 但它说数据库错误 ORA 12541 tns没有监听器 我能够通过数据库客户端 例如 datagrip 进行连
  • 如何在nodejs中处理xhr blob post

    客户端代码 var xhr new XMLHttpRequest xhr open POST frame true xhr send blob 服务器代码 app use bodyParser urlencoded extended fal
  • swagger文件默认属性的控制

    在 1 5 16 版本中使用 swagger core swagger annotations 控制我的数据模型的 swagger 文件中的默认属性时遇到问题 有一个定义 HTTP POST 输入 JSON 对象的 POJO import
  • 具有曼哈顿距离启发式的 A* 算法

    我一直在用 C 语言开发一个 15 个谜题求解器 我的代码使用的大量内存给我带来了一些问题 我不会发布我的代码 因为它太长了 我已经实现了我正在使用的大部分库 它可能会给您带来困惑 让我们从基础开始 我现在正在使用的东西是 全部用C实现 斐
  • 如何自动将多个 Monticello 提交从本地存储库复制到 Smalltalkhub.com?

    白天 我将多个版本的 Monticello 软件包提交到 磁盘上的本地存储库 稍后我想将本地存储库与 Smalltalkhub com 存储库同步 目前 我使用 Monticello 浏览器将本地提交手动一一复制到 Smalltalkhub
  • 不允许在文本区域中换行

    使用 jQuery 如何不允许插入新行 通过按 Enter 或复制文本 在半伪代码中 textarea keydown function this remove new lines Thanks EDIT 是像下面这样粗暴还是有更好的方法