2017-02-04 180 views
1

我试图删除从textarea中的单词发布时的换行符。 Atm根本没有工作,事后我认为这应该是一件轻而易举的事情。我确定我忘记了一些小事,但我无法弄清楚。这是在paste上调用的方法。从textarea清除换行符

function cleanLineBreaks(el) { 
    var editedText = $(el).val().replace(/(\r\n|\n|\r)/gm," "); 
    $(el).val(editedText); 
} 

我创建了一个小提琴来解释。

只需粘贴有换行符在它的一些文字,你可以看到,换行符的arent清洗

https://jsfiddle.net/gg56rw36/7/

回答

2

你必须当前对象传递给cleanLineBreaks功能。

此外,您需要绑定onPaste事件处理程序,而不是onclick

<textarea onclick="cleanLineBreaks(this)"></textarea> 

function cleanLineBreaks(el) { 
 
    setTimeout(function(){ 
 
     var editedText = $(el).val().replace(/(\r\n|\n|\r)/gm," "); 
 
     $(el).val(editedText); 
 
    },0); 
 
}
textarea { 
 
    width: 400px; 
 
    height: 400px; 
 
    display: block; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<textarea onPaste="cleanLineBreaks(this)"></textarea>

+0

对不起,我还没有解释我的问题非常好。我的意思是我想删除粘贴中断。我更新了我的jsfiddle,以便在粘贴时触发该函数。 – vincent

+0

@vincent,它是为你工作? –

+0

是的,谢谢! – vincent