【问题标题】:how to add "•" each time i hit enter key in textarea [closed]每次我在textarea中按回车键时如何添加“•”[关闭]
【发布时间】:2013-10-23 10:03:34
【问题描述】:

如何在我的文本区域中每次按 Enter 键时添加“•”。我一直在寻找它的代码。但我似乎找不到它。或者在按下回车键后,如果我输入了一个单词,那是唯一一次它会在单词前添加“•”。请帮忙。

【问题讨论】:

  • 你已经尝试了什么?
  • 添加到哪里?当前行的开头?当前行的结尾?下一行的开始?在文本区域上方还是下方?
  • 我认为很明显这是一个项目符号列表,而不是多行密码。
  • Enter key in textarea的可能重复
  • 不要在用户填写文本区域时执行此操作。这比它的价值多得多。在聚焦时更改 textarea 的值意味着在更改光标位置时必须获取和重置光标位置。稍后通过拆分\n上的文本很容易进行此替换

标签: javascript jquery


【解决方案1】:

http://jsbin.com/uPALIRU/1/

$('textarea').on('keydown',function(e){
  var t = $(this);
  switch(e.which){
  case 13:
    t.val(t.val()+'•');
    return false;
  }  
});

【讨论】:

  • 但是,在键盘上击中一个字符的时间怎么样。它会自动添加子弹?
  • 你已经尝试了什么?
【解决方案2】:

你可能想要这样的东西:

$(function() {
  $('#List').keyup(function (event) {
    if (event.keyCode == 13) { // If enter is pressed.
      var content = this.value;
      var sel = getInputSelection(this);
      var caret = getCaret(this);
      var bullet = "• ";
      this.value = content.substring(0,caret) +
                   bullet +
                   content.substring(caret,content.length);
      setInputSelection(
        this,
        sel.start + bullet.length,
        sel.end + bullet.length
      );
      event.stopPropagation();  
    }
  });
});

getCaret() 函数从 this SO answer 窃取,getInputSelection()setInputSelection() 函数从 this one 窃取。

完整(有点混乱)JSFiddle here

这具有表现得更像文本编辑器的优点。如果您的光标不在文本区域的末尾并且您按下回车键,您希望项目符号出现在您的光标处,而不仅仅是添加到文本区域的末尾。

编辑:

添加了光标位置重置。

【讨论】:

  • 嗨,Jacob,在您的 JSFiddle 示例中,您是否知道当您按 Enter 时如何避免光标始终移动到文本区域的末尾?谢谢!
  • 好问题。看起来这种行为是您更新 textarea 的value 时的默认行为,基于一些快速搜索导致我找到this SO question。我已将其中一个答案合并到我的代码中。
  • 谢谢!我去看看。
【解决方案3】:

听起来你想制作一个项目符号列表,在行前加上一个项目符号 (•)

  var linestart = function(txt, st) {
    var ls = txt.split("\n");
    var i = ls.length-1;
    ls[i] = st+ls[i];
    return ls.join("\n");
  };
  $('textarea').on('keydown', function(e) {
    var t = $(this);
    if(e.which == 13) {
      t.val(linestart(t.val(), '•') + "\n");
      return false;
    }  
  });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-11
    • 1970-01-01
    • 1970-01-01
    • 2019-12-24
    相关资源
    最近更新 更多