JQUERY:textarea,仅允许键入或粘贴文本上的项目符号

时间:2016-04-19 12:33:38

标签: jquery tabs contenteditable

   •    Test 1
       o    Test 1A
           o    Test 1AA
   •    Test 2

我想在textarea中找到类似上面的内容。

所以,当我保存时,我得到:

<ul>
    <li>Test 1</li>
    <ul>
        <li>Test 1A</li>
    <ul>
        <li>Test 1AA</li>
    </ul>
    </ul>
    <li>Test 2</li>
</ul>

我的研究让我知道了:

  1. Portability

    $(".todolist").focus(function() {
    if(document.getElementById('todolist').value === ''){
        document.getElementById('todolist').value +='• ';
    }
    });
    $(".todolist").keyup(function(event){
    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);
    }
    });
    
  2. reset - reinitialization

    $(document).delegate('#textbox', 'keydown', function(e) { 
      var keyCode = e.keyCode || e.which; 
    
      if (keyCode == 9) { 
        e.preventDefault(); 
        var start = $(this).get(0).selectionStart;
        var end = $(this).get(0).selectionEnd;
    
        // set textarea value to: text before caret + tab + text after caret
        $(this).val($(this).val().substring(0, start)
                    + "\t"
                    + $(this).val().substring(end));
    
        // put caret at right position again
        $(this).get(0).selectionStart = 
        $(this).get(0).selectionEnd = start + 1;
      } 
    });
    
  3. http://jsfiddle.net/abhiagrawal87/m39xt/

    .text {
      border: 1px solid grey;
      padding: 2px 3px;
    }
    
    <ul>
      <li>Item 1</li>
      <li>Item 2</li>
      <li>Item 3</li>
    </ul>
    <hr/>
    <div contenteditable='true' class="text">
      paste here ...
    </div>
    
  4. 这里的所有代码都做了一些有用的东西,但把它放在一起是另一回事。有些人使用div和其他textarea。

    非常感谢任何帮助。

    谢谢。 -Barry

0 个答案:

没有答案