如何使用Javascript在TextArea中实现内置项目符号列表?

如何使用Javascript在TextArea中实现内置项目符号列表?,javascript,jquery,bulletedlist,Javascript,Jquery,Bulletedlist,我使用了下面的代码形式jsfiddle.net,但它有一个bug,如果我们快速按下回车键+字符键,它会生成下面的输出 //Javascript代码 function onfoc() { if(document.getElementById('todolist').value =="") { document.getElementById('todolist').value +='• '; } } function bulletOnEnter(){ var keycode = (even

我使用了下面的代码形式jsfiddle.net,但它有一个bug,如果我们快速按下回车键+字符键,它会生成下面的输出

//Javascript代码

function onfoc()
{
if(document.getElementById('todolist').value =="")
{
    document.getElementById('todolist').value +='• ';
}
}

function bulletOnEnter(){
var keycode = (event.keyCode ? event.keyCode : event.which);
if(keycode == '13'){

    document.getElementById("todolist").value +='• ';

}
var txtval = document.getElementById('todolist').value;
if(txtval.substr(txtval.length - 1) == '\n'){
    document.getElementById('todolist').value = txtval.substring(0,txtval.length - 1);
}
}

尝试使用无序列表:

Html:

  • 东西
  • 更多的东西
因为您说过您正在使用jQuery,所以您可以简单地用文本框的当前值附加另一个列表元素,然后它将其清除

$(document).ready(function(){
    //event listener
  $('#addItems').on('keypress', function(event){
    if(event.which === 13){
      event.preventDefault();
      var text = $('#addItems').val();
      $('#todo').append('<li>' + text + '</li>');
      //clear textbox
      $('#addItems').val('');
    }
  });
});
$(文档).ready(函数(){
//事件侦听器
$('#addItems')。on('keypress',函数(事件){
if(event.which==13){
event.preventDefault();
var text=$('#addItems').val();
$('#todo')。追加('
  • '+text+'
  • '); //清除文本框 $('#addItems').val(''); } }); });
    JSFiddle:

    编辑:
    您可以添加
    contenteditable=“true”
    ,然后编辑每个单独的列表项

    尝试使用无序列表:

    Html:

    • 东西
    • 更多的东西
    因为您说过您正在使用jQuery,所以您可以简单地用文本框的当前值附加另一个列表元素,然后它将其清除

    $(document).ready(function(){
        //event listener
      $('#addItems').on('keypress', function(event){
        if(event.which === 13){
          event.preventDefault();
          var text = $('#addItems').val();
          $('#todo').append('<li>' + text + '</li>');
          //clear textbox
          $('#addItems').val('');
        }
      });
    });
    
    $(文档).ready(函数(){
    //事件侦听器
    $('#addItems')。on('keypress',函数(事件){
    if(event.which==13){
    event.preventDefault();
    var text=$('#addItems').val();
    $('#todo')。追加('
  • '+text+'
  • '); //清除文本框 $('#addItems').val(''); } }); });
    JSFiddle:

    编辑:
    您可以添加
    contenteditable=“true”
    ,然后编辑每个单独的列表项

    为什么不使用无序列表?使用
    并简单地将
    li
    元素附加到按键上的无序列表中。您是对的,但如果我这样做,将违反应用程序布局:(为什么不使用无序列表?使用
    并简单地将
    li
    元素附加到按键上的无序列表中。您是对的,但如果我这样做,将违反应用程序布局。)(这确实是一个很好的解决方案,但它严格要求我只能使用textarea。如果你能在textarea方面提供帮助,那将非常棒。这确实是一个很好的解决方案,但它严格要求我只能使用textarea。如果你能在textarea方面提供帮助,那将非常棒。