javascript - 单击输入时在输入中添加一个值
问题描述
我想实现下一个结果:
当我从输入开始在每一行上输入时,在这个符号textarea
的开头添加: 。
接下来是场景:textarea
+
- 用户在第一行开始输入,在第一个输入的字母之后应该出现
+
在行的开头。 - 用户点击 enter 并且在第二行的开头应该出现另一个
+
,依此类推。
最后,我应该在 textarea 中得到类似的东西:
+ text from first row
+ text from second row
... ... ...
演示:https
://codesandbox.io/s/modest-hertz-tkyxv?file=/index.js 现在这个想法没有工作,因为+
每次我打字时都会添加标志。
问题:如何实现我上面描述的?
解决方案
你可以这样做:
https://codesandbox.io/s/interesting-driscoll-2cvfq?file=/index.js:261-525
const onChange = e => {
setState(
e.target.value === "+"
? ""
: (!state ? "+" : "") +
e.target.value
.split(/\n\+$/)
.join("\n")
.split(/\n[^+]/)
.join("\n+")
);
推荐阅读
- google-apps-script - 将电子表格复制到 GDrive 中的特定文件夹中
- laravel - 雄辩的如何在父表值不变的情况下更新子表值
- php - Wordpress 如何存储已登录的用户?
- node.js - msteams 传出 webhook 的 IP 白名单
- node.js - zip 警告:压缩目录时缺少结束签名
- mysql - MySQL 工作台:如何将特定列导出为更新语句?
- javascript - 一旦前一个被循环,如何循环遍历一个数组?
- database - 如何获取 sqflite Flutter 数据库的正确路径?
- linux - 如何通过 Linux 命令“grep”获取值
- python - 在 C++ 中嵌入 Python 时如何消除导入错误?