Вставка символа в input
Появилась необходимость реализации вставки символа "-" и "," в числовое поле ввода (именно input type="number") нажатием разных кнопок.
Если с запятой можно обойтись input.value+=",";, то с минусом так не выходит. Видел код на JQuery, эмулирующий нажатие клавиш клавиатуры, но хочется сделать это на чистом javascript. Как вставлять необходимый символ в пустое поле или эмулировать нажатие клавиши клавиатуры? Заранее спасибо. |
<input type="number" value="5" id="mynumber"> <input type="button" value="-" onclick="mynumber.value = -mynumber.value;"/> |
Я так уже делал и написал, что не подходит. Здесь нельзя нажать кнопку минус, вводить числа и получить отрицательный результат
<input type="number" value="5" id="mynumber"> <input type="button" value="-" onclick="mynumber.value = -mynumber.value; mynumber.focus()"/> Нужно, чтобы при нажатии кнопки минус, поле получало фокус, а его значение при изменении (дальнейшем вводе с клавиатуры) было отрицательным. |
<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>:) |
Спасибо за ответ.
Я сейчас сделал следующее, при нажатии кнопки минус некой переменной присваивается значение true, при изменении поля пользователем проверяется переменная на true/false и выводится результат. Это работает, но не показывает символ минус при пустом поле. Ваш код, как я понял, отлавливает событие нажатия кнопки - на клавиатуре. У меня же доступна только мобильная цифровая клавиатура. Очень часто на ней кнопка - отсутствует, поэтому и делаю виртуальную кнопку, которая должна функционально заменить клавиатуру. Я пробовал не ждать событие нажатия, а создавать его, но не получалось написать рабочий код. Вы его не знаете? |
тут ты завел меня в тупик. нажатие кнопки вариант 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. |