Как обрезать пробелы в форме при вставке текста с пробелами?

232
13 апреля 2017, 15:44

На данный момент есть скрипт, который запрещает вводить пробелы в формы. Как не только запрещать их вводить, но и обрезать пробелы при вставке текста, если они там есть?

<input type="text" name="name" onkeypress="return check(event);"> 
 
<script type="text/javascript"> 
  function check(event) { 
    if (event.keyCode == 32) { 
      return false; 
    } 
  } 
</script>

Answer 1

Можно навесить обработчик на событие onpaste пример кода:

var myInput = document.getElementById('name'), 
  cleanSpaces; 
 
cleanSpaces = function(e) { 
  e.preventDefault(); 
  var pastedText = ''; 
  if (window.clipboardData && window.clipboardData.getData) { 
    pastedText = window.clipboardData.getData('Text'); 
  } else if (e.clipboardData && e.clipboardData.getData) { 
    pastedText = e.clipboardData.getData('text/plain'); 
  } 
  this.value = pastedText.replace(/\s/g, ''); 
}; 
 
myInput.onpaste = cleanSpaces; 
 
function check(event) { 
  if (event.keyCode == 32) { 
    return false; 
  } 
}
<input type="text" id="name" onkeypress="return check(event);">

Ссылка на источник: Javascript - Removing spaces on paste

Answer 2

Описание работы в ответе @fellzo :)

window.onload = function() { 
  var txtInput = document.getElementById('txt'); 
  txtInput.addEventListener('input', function() { 
    check(txtInput); 
  }); 
} 
 
function check(input) { 
  var newValue = input.value.replace(/\s/g, ''); 
 
  if (input.value != newValue) { 
    input.value = newValue; 
  } 
}
<input id="txt" type="text" name="name" />

Answer 3

Привязать к отправке формы и изменению input'а фукнцию, которая меняет значение формы на значение без пробелов. Для этого можно использовать строковый метод replace(' ', ''), которая заменит каждый пробел на пустую подстроку.

function replace_spaces(event) { 
  event.target.value = event.target.value.replace(' ', ''); 
}
<input type="text" id="inp" oninput="replace_spaces(event)">

READ ALSO
Не работает адаптивность на телефоне и планшете

Не работает адаптивность на телефоне и планшете

Доброго времени суток, прошу мне помочьПроблема заключается в том, что не работает адаптивность если заходить с телефона или планшета

231
поворот триггера unity3d

поворот триггера unity3d

У меня есть trigger,который нормально реагирует на столкновения,но когда я вращаю его таким кодом:

169
Binding ресурса к KeyFrame storyboard

Binding ресурса к KeyFrame storyboard

Как забиндить цвет анимации к локальному ресурсу:

168
Создание и редактирование моделей

Создание и редактирование моделей

Как можно удобно создавать модели в средеnet core

167