Не может вернуться в текстовое поле, где он использует скрипт для размещения запятых - PullRequest
0 голосов
/ 10 декабря 2018

Я использую этот скрипт, чтобы автоматически ставить запятую после каждого введенного вами элемента и нажимать пробел.

Но по какой-то причине я никак не могу понять, как заставить это вернуться назад.

Я бы предпочел, чтобы он мог удалять весь элемент и запятую с каждым обратным пробелом.

   $('#textarea').keyup(function(){
   var str = this.value.replace(/(\w)[\s,]+(\w?)/g, '$1, $2');
   if (str!=this.value) this.value = str; 
   });

<textarea id='textarea'>item1, item2, item3</textarea>

1 Ответ

0 голосов
/ 10 декабря 2018

Включает только возврат:

$('#textarea').keyup(function(e) {
  if (e.which === 8) { // backspace detected
      return;
  }
  var str = this.value.replace(/(\w)[\s,]+(\w?)/g, '$1, $2');
  if (str!=this.value) this.value = str; 
});

РЕДАКТИРОВАТЬ: полная версия:

$('#textarea').keyup(function(e){
    var str = this.value;
    if (e.which === 8) {
        var tmp = str.split(', ');
        tmp.splice(tmp.length - 1, 1);
        str = tmp.join(', ');
        this.value = str;
        return;
    }
    str = str.replace(/(\w)[\s,]+(\w?)/g, '$1, $2');
    if (str!=this.value) this.value = str; 
});
...