Информатика, вопрос задал himikomat , 1 год назад

JavaScript.
Как сделать так чтобы после ввода символа "." его больше нельзя было бы ввести ещё раз в input?
document.getElementById("display").value += "."; return false;пример кода​

Ответы на вопрос

Ответил Аноним
1

Задание:

Разрешить ввод символа "." в текстовом поле лишь единожды.

Решение (JavaScript):

let input = document.getElementById("input");

input.addEventListener("input", () => {

   if (input.value.indexOf(".") !== input.value.lastIndexOf(".")) {

       input.value = input.value.substring(0, input.value.length - 1);

   }

});

Объяснение:

Метод indexOf() возвращает индекс первого вхождения указанного значения в строку. Метод lastIndexOf(), наоборот, возвращает индекс последнего вхождения указанного значения в строку. Проверив индекс первого и последнего вхождений символа "." в текстовое поле, мы можем выяснить, был ли он введён до этого, или нет. Если индексы совпадают, это говорит о том, что символ вводится впервые. Если нет, то символ уже был введён до этого. В таком случае мы меняем значение текстового поля на то же, но без последнего символа.

Примечание:

Предполагается, что в HTML файле текстовое поле имеет идентификатор "input".


himikomat: огромное спасибо
himikomat: в данном случае у меня в html , что нужно переписать в вашем js коде чтоб всё работало?
himikomat: input type="text" name="display" id="display" class="DP"
Аноним: Можете заменить id="display" на id="input".
himikomat: спасибо
himikomat: код работает только для document.getElementById("input").value = "." как сделать так чтобы он работал не для "=" а для "+="?
Аноним: document.getElementById("input").value += "." добавит "." к значению текстового поля. Я не вижу смысла использовать "+=" вместо "=".
Новые вопросы