Подтвердить что ты не робот

Не разрешать новые строки в 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));
});
4b9b3361

Ответ 1

Есть два способа сделать это: проверить каждый символ, когда он вводится, и вернуть false, если вы не хотите, чтобы он отображался, или на каждом смене/клавиатуре вы можете проверить все содержимое. В то время как первый более эффективен, он не будет работать в ситуациях, когда пользователь вставляет содержимое, включающее нежелательные символы. По этой причине я рекомендую последний подход, что-то вроде этого (что запретит все вертикальные пробелы):

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

Ответ 2

вы можете проверить keyCode, если он равен 13, просто верните false

$('#TEXTAREA').keypress(function(e){
   if (e.keyCode == 13) return false
})

Ответ 3

$('textarea').keydown(function(e){
 var s = $('textarea').val();
 while (s.indexOf("\n") > -1)
  s = s.replace("\n","");
 $('textarea').val(s);
});