Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Вставка символа в input (https://javascript.ru/forum/misc/52487-vstavka-simvola-v-input.html)

arkada38 21.12.2014 20:53

Вставка символа в input
 
Появилась необходимость реализации вставки символа "-" и "," в числовое поле ввода (именно input type="number") нажатием разных кнопок.
Если с запятой можно обойтись
input.value+=",";
, то с минусом так не выходит.
Видел код на JQuery, эмулирующий нажатие клавиш клавиатуры, но хочется сделать это на чистом javascript.
Как вставлять необходимый символ в пустое поле или эмулировать нажатие клавиши клавиатуры?
Заранее спасибо.

Vlasenko Fedor 21.12.2014 21:37

<input type="number" value="5" id="mynumber">
<input type="button" value="-" onclick="mynumber.value = -mynumber.value;"/>

arkada38 21.12.2014 22:03

Я так уже делал и написал, что не подходит. Здесь нельзя нажать кнопку минус, вводить числа и получить отрицательный результат
<input type="number" value="5" id="mynumber">
<input type="button" value="-" onclick="mynumber.value = -mynumber.value; mynumber.focus()"/>

Нужно, чтобы при нажатии кнопки минус, поле получало фокус, а его значение при изменении (дальнейшем вводе с клавиатуры) было отрицательным.

Vlasenko Fedor 21.12.2014 22:12

<input type="number" value="5" id="mynumber">
    <script>
      document.getElementById('mynumber').onkeypress = function (e) {
        if (e.charCode == 45) {
          this.value = -this.value; //this.value *= -1;
          return false;
        }
      };
</script>
:)

arkada38 21.12.2014 22:22

Спасибо за ответ.

Я сейчас сделал следующее, при нажатии кнопки минус некой переменной присваивается значение true, при изменении поля пользователем проверяется переменная на true/false и выводится результат. Это работает, но не показывает символ минус при пустом поле.

Ваш код, как я понял, отлавливает событие нажатия кнопки - на клавиатуре. У меня же доступна только мобильная цифровая клавиатура. Очень часто на ней кнопка - отсутствует, поэтому и делаю виртуальную кнопку, которая должна функционально заменить клавиатуру.

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

Vlasenko Fedor 21.12.2014 22:34

тут ты завел меня в тупик. нажатие кнопки вариант 1 или можно повесить событие на кнопку. Нажатие на клавишу - привел(вешай событие на виртуальную кнопку)
<input type="number" value="5" id="mynumber">
    <input type="button" value="-" id="minus">
    <script>
      document.getElementById('mynumber').onkeypress = function (e) {
        if (e.charCode == 45) {
          this.value *= -1;
          return false;
        }
      };
      document.getElementById('minus').onclick = function () {
        document.getElementById('mynumber').value *= -1;
      };
    </script>


Часовой пояс GMT +3, время: 00:45.