不要在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); });