所以我想在文本区域的每一行中添加连字符。我怎样才能实现这个目标?我基本上希望它看起来像这样:
- One
- Two
...
也许有 jQuery 的东西,但我不知道是什么..
最佳答案
试试这个。我认为这样更好
$('#textbox').keypress(function(event){
var keycode = (event.keyCode ? event.keyCode : event.which);
if(keycode == '13'){
//alert('You pressed a "enter" key in textbox');
var cursorPos = $('#textbox').prop('selectionStart');
var v = $('#textbox').val();
var textBefore = v.substring(0, cursorPos );
var textAfter = v.substring( cursorPos, v.length );
$('#textbox').val( textBefore+ "\n-" +textAfter );
setCaretPosition(document.getElementById('textbox'),( cursorPos + 2));
return false;
}
event.stopPropagation();
});
function setCaretPosition(ctrl, pos){
if(ctrl.setSelectionRange)
{
ctrl.focus();
ctrl.setSelectionRange(pos,pos);
}
else if (ctrl.createTextRange) {
var range = ctrl.createTextRange();
range.collapse(true);
range.moveEnd('character', pos);
range.moveStart('character', pos);
range.select();
}
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<textarea id="textbox"></textarea>
关于javascript - 按下 Enter 时将连字符添加到文本区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26860760/