Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.10.2015, 15:44
Новичок на форуме
Отправить личное сообщение для ArmaTiK Посмотреть профиль Найти все сообщения от ArmaTiK
 
Регистрация: 08.09.2014
Сообщений: 7

Как запретить вводить в инпут number после , все цифры кроме 5?
Есть калькулятор с инпутами типа number с step=0.5. Шаг (0,5) запрещает ввод стрелочками чисел типа 7,78 или 4,11175649, но не запрещает их ввод вручную. Как запретить вводить все цифры кроме 5 в качестве первой цифры после запятой?
Спасибо!
Ответить с цитированием
  #2 (permalink)  
Старый 21.10.2015, 16:53
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Если шаг 0.5, но ввели к примеру 0.15, то современный браузер все равно не отправит форму, уже при потере фокуса этот элемент будет отображать ошибку в нем.
Ответить с цитированием
  #3 (permalink)  
Старый 21.10.2015, 18:49
Новичок на форуме
Отправить личное сообщение для ArmaTiK Посмотреть профиль Найти все сообщения от ArmaTiK
 
Регистрация: 08.09.2014
Сообщений: 7

Да, но речь идет о калькуляторе стоимости продукции. Клиент может посчитать, просто для сравнения цен, но не сделать заказ (не отправить форму). А при вводе к примеру 7,3 расчет будет с учетом этого числа. Поэтому лучше запретить ввод подобных чисел. Я в js новичок. Есть идея сделать это через CharCode, только вот как сделать? По идее нужно запретить нажатие цифр после "." (кроме 5).
Ответить с цитированием
  #4 (permalink)  
Старый 21.10.2015, 18:59
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

<!DOCTYPE HTML> 
<body>
<input type="number" step="0.5" />
</body> 
</html>


Введите отличное от 0.5 и щелкните вне поля ввода, браузер покажет ошибку. Ну и можно проверять в добавок ввод, чтобы отобразить сообщение.

Если просто запретить без всяких диалогов то просто добавьте полю onkeypress="return false".

Последний раз редактировалось laimas, 21.10.2015 в 19:11.
Ответить с цитированием
  #5 (permalink)  
Старый 21.10.2015, 22:01
Новичок на форуме
Отправить личное сообщение для ArmaTiK Посмотреть профиль Найти все сообщения от ArmaTiK
 
Регистрация: 08.09.2014
Сообщений: 7

Google Chrome Версия 46.0.2490.71 m могу ввести к примеру 7,3 никаких предупреждений не выходит, если перещёлкнуть стрелочкой значение, то оно сменится на ближайшее 7,5 или 7. Хром ругается только при отправки формы, а при вводе молчит.
Ответить с цитированием
  #6 (permalink)  
Старый 21.10.2015, 22:12
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

ArmaTiK,

<input type="number" step="0.5" oninput="var v = this.value;this.value=v.replace(/[.,]\d+/,'.5')" />
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
yandex map region как скрыть все кроме карты России Telnet Общие вопросы Javascript 0 05.10.2013 15:38
Как заблокировать checkbox кроме выделенных YCsys Events/DOM/Window 5 06.06.2012 17:34
Название ячейки таблицы Questioner Общие вопросы Javascript 6 16.02.2011 09:58
Выбрать все, кроме одного div'а. Как? Юрий Шу jQuery 9 27.05.2010 17:37
глюк форума Gvozd Сайт Javascript.ru 11 18.03.2009 14:37