Как запретить символ после одного раза его использования?

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


Ответы (1 шт):

Автор решения: ΝNL993

Если вы просто хотите что в инпут не было второго плюса, то вот тогда(сделано топорно):

const INP = document.querySelector('#i')

INP.addEventListener('keydown', () => {
  if(INP.value.includes('++')) INP.value='+'+INP.value.replaceAll('+', '')
})
<input id="i" type="text">

Я же посоветую сделать так, чтобы + был включён по стандарту и нужно было вводить только числа, а в самом коде если вам нужно номер с +-ом, тогда просто добавляйте его в начало. Вот что я имею в виду:

const INP = document.querySelector('#i')

let phoneNumber

INP.addEventListener('keyup', () => {
  phoneNumber = INP.value
  console.log('+42'+phoneNumber)
})
form {
  display: flex;
}

form > span {
  border: 1px solid;
  border-right: 0px;
  padding: 2px;
  background-color: rgb(223, 223, 223);
  border-top-left-radius: 4px;
  border-bottom-left-radius: 4px;
}

form > input {
  border: 1px solid;
  border-left: 0px;
  border-top-right-radius: 4px;
  border-bottom-right-radius: 4px;
}
<form>
  <span>+42</span>
  <input id="i" type="number">
</form>

Плюс к этому всему это же решает проблему того, что пользователь может написать к примеру не число, а букву. И это как по мне самый лучший вариант того как это можно реализовать.

→ Ссылка