【问题标题】:Add hyphen to textarea when pressed enter按下回车时将连字符添加到文本区域
【发布时间】:2014-11-11 08:42:23
【问题描述】:

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

 - One
 - Two
 ...

可能有 jQuery 的东西,但我不知道是什么..

【问题讨论】:

  • 您只想在每个文本区域添加一个 - ?
  • 没有。我有 1 个文本区域,我想将 - 添加到该文本区域中的每个新行。因此,如果用户按下回车键并进入新行,该行应该有 -.

标签: javascript jquery html forms textarea


【解决方案1】:

试试这个。我觉得这样更好

$('#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>

【讨论】:

  • 我最终使用了这个。非常适合我,因为我可以在现有行之间添加新行。谢谢!
【解决方案2】:

您可以使用 jQuery Entey 键捕获事件来执行此操作。下面的小提琴会帮助你。

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

更新小提琴: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();
});

【讨论】:

  • 谢谢。这几乎可以完美地工作。但是现在当我按下回车键时它会跳两行。第一行有那个“-”,光标跳转的第二行是空的。如何将光标与“-”保持在同一行?
  • 谢谢!完美运行! :)
【解决方案3】:

请添加此脚本。它会简单地工作。

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

【讨论】:

    猜你喜欢
    • 2011-04-10
    • 1970-01-01
    • 1970-01-01
    • 2021-05-14
    • 1970-01-01
    • 2011-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多