不要在textarea中允许换行

使用jQuery我怎么能不允许插入新行(按输入或复制文本) – 在半伪代码中…

$('textarea').keydown(function(){ $(this).remove_new_lines(); }); 

谢谢!

编辑:

它会像以下一样粗糙还是有更好的方法?

 function removeNL(s){ return s.replace(/[\n\r\t]/g,); } $('textarea').keydown(function(){ $(this).val(removeNL($(this).val)); }); 

有两种方法可以执行此操作:检查每个字符是否输入,如果不希望它显示则返回false,或者在每个更改/键盘上检查整个内容。 虽然前者性能更高,但在用户粘贴包含不需要的字符的内容的情况下,它将不起作用。 出于这个原因,我推荐后一种方法,类似这样(它将禁止所有垂直空白):

 $('textarea').on('keyup', function(){ $(this).val($(this).val().replace(/[\r\n\v]+/g, '')); }); 

或使用纯JavaScript(ES2015 / ES6):

 constrainInput = (event) => { event.target.value = event.target.value.replace(/[\r\n\v]+/g, '') } document.querySelectorAll('textarea').forEach(el => { el.addEventListener('keyup', constrainInput) }) 

你可以检查keyCode,如果等于13则只返回false

 $( '#TEXTAREA')。按键(function(E){
    if(e.keyCode == 13)返回false
 })
 $('textarea').keydown(function(e){ var s = $('textarea').val(); while (s.indexOf("\n") > -1) s = s.replace("\n",""); $('textarea').val(s); });