按enter键时,在文本区域添加连字符

Add hyphen to textarea when pressed enter

本文关键字:区域 添加 连字符 文本 enter 键时      更新时间:2023-09-26

所以我想在文本区域的每一行都加上连字符。我怎样才能做到这一点?我基本上希望它看起来像这样:

 - 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>

您可以使用jQuery Entey密钥捕获事件来完成此操作。下面的小提琴会帮助你的。

http://jsfiddle.net/kiranvarthi/666ausss/

更新Fiddle:http://jsfiddle.net/kiranvarthi/666ausss/1/

$('#textbox').keypress(function(event){
    var keycode = (event.keyCode ? event.keyCode : event.which);
    if(keycode == '13'){
        alert('You pressed a "enter" key in textbox');  
        document.getElementById('textbox').value = document.getElementById('textbox').value + "'n-";
    }
    event.stopPropagation();
});

请添加此脚本。它只会起作用。

<script>
document.getElementById('myTextarea').onkeyup = function(e) {
if (e.keyCode == 13){
  var x = document.getElementById("myTextarea").value;
  document.getElementById("myTextarea").value = x+'-';
    return false;
 }
}
</script>