如何在textarea中添加项目符号?

时间:2016-05-27 09:02:46

标签: javascript jquery html

我想在点击“输入”时添加项目符号。 textarea里面的按钮。这是编码。它完全不起作用。我错了吗?

<script>
$(".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);
    }
});
</script>


<form>
<textarea id="todolist" class="todolist" name="todolist" rows="10"   placeholder="Maintain your pending tasks"></textarea>
</form>

3 个答案:

答案 0 :(得分:1)

以下是单击enter时在文本区域内添加项目符号的问题中包含的代码。

您可能需要更改两件事:

1)正如@Alexiy在评论中所提到的,html代码需要在javascript代码作用于它之前,除非javascript设置为在文档完成加载后运行。

2)确保在javascript之前在页面上加载jquery,因为你在javascript中使用了jquery。

$(".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);
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
  <textarea id="todolist" class="todolist" name="todolist" rows="10" placeholder="Maintain your pending tasks"></textarea>
</form>

答案 1 :(得分:1)

正如其他人在评论中提到的那样,您使用的代码的问题是,您在浏览器访问HTML代码之前加载脚本。

可以克服的一个问题是将整个jQuery代码包装到$(document).ready()或其中一个缩短版本中。

但是,我建议不要将<textarea></textarea>元素用于此目的,而是使用无序列表<ul></ul>。 为了能够编辑它,您可以将其包装在contenteditable值设置为true的div中。因此,从一个空的子弹开始,使用此HTML(不需要javascript!)

<div contenteditable="true">
  <ul>
    <li></li>
  </ul>
</div>

答案 2 :(得分:0)

你可以试试这个。 的Javascript

$(document).ready(function(){   
$('#txt').keyup(function(e){
if(e.keyCode == 13){
var h= $('#txt').val();
$('#txt').val('');
$('#txt').val(h+'*');// put your ascii code for special character
}
});
});

HTML:

<textarea id="txt"></textarea>