Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Функция запрета ввода определенных чисел типа 0,78... (https://javascript.ru/forum/misc/58794-funkciya-zapreta-vvoda-opredelennykh-chisel-tipa-0-78-a.html)

ArmaTiK 11.10.2015 00:25

Функция запрета ввода определенных чисел типа 0,78...
 
Есть калькулятор с инпутами типа number с step=0.5. Шаг (0,5) запрещает ввод стрелочками чисел типа 7,78 или 4,11175649, но не запрещает их ввод вручную. Как запретить вводить 1,2,3,4,6,7,8,9,0 в качестве первой цифры после запятой? Моё недорешение:
function zapret(){
var stroka = $(this).val();
if(stroka.substring(1,2) == '.'){
var simbolstroka = stroka.substring(2,3); 
if(simbolstroka < 5){var part1 = stroka.substring(0,1); var part2 = ''; var newstroka = +part1 + +part2;}
else if(simbolstroka >= 6){part1 = stroka.substring(0,1); part2 = 0.5; newstroka = +part1 + +part2;}
else if(simbolstroka == 5){newstroka = $(this).val()};
$(this).val(newstroka);
}
else if(stroka.substring(2,3) == '.'){
var simbolstroka = stroka.substring(3,4); 
if(simbolstroka < 5){var part1 = stroka.substring(0,2); var part2 = ''; var newstroka = +part1 + +part2;}
else if(simbolstroka >= 6){part1 = stroka.substring(0,2); part2 = 0.5; newstroka = +part1 + +part2;}
else if(simbolstroka == 5){newstroka = $(this).val()};
$(this).val(newstroka);
};
};
$(".zapret").change(zapret);


Оно работает не до конца. Запрещается вводить ненужные мне числа, но калькулятор для расчетов берет введеное ранее значение. Пример: Ввожу 4.47, функция меняет значение инпута на 4, но в расчете используется 4.47. Подключал вызов функции раньше калькуляции не помогает.
Спасибо!

рони 11.10.2015 00:31

ArmaTiK,
а так?
$(".zapret").on({input:zapret});


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