js实现textarea回车换行

	<div class="formControls col-sm-6">
		<textarea rows="6" cols="130" onkeydown="enter('cOthersResponsible')" id="cOthersResponsible" maxlength="160" style="font-size:1em" placeholder="请输入企业负责人姓名及履历,字数不超过160字"></textarea>
		<!-- <span class="text_count" style="">可输入160</span> -->
	</div>

下面这个方法是网上流传最广的写法,但是只是能实现最简单的回车换行。

//文本编辑框点击回车换行的js
	 var enter = function(id){
     
		 if(window.event.keyCode==13){
     
			 var rawData = $("#"+id).val();
			 $("#"+id).val(rawData+"\n");
		 }
	 }

如果你想在输入完的内容中,随便移动光标到某个位置点击回车换行,上面的方法就不起作用了,他只会在你文字的末尾换行。因为他获取你整个输入的内容,在末尾拼上了换行符,真正解决方式应该是从光标处拼接换行符,代码如下:

//文本编辑框点击回车换行的js
	 var enter = function(id){
     
		 if(window.event.keyCode==13){
     
// 			 var rawData = $("#"+id).val();
// 			 $("#"+id).val(rawData+"\n");
			 var tx = document.getElementById(id);
		     var pos = cursorPosition.get(tx);
		     cursorPosition.add(tx, pos, "\n");
		 }
	 }

完结撒花✿✿ヽ(°▽°)ノ✿

你可能感兴趣的:(前端问题解决方案,jquery,js)