#javascript
#javascript
Вопрос:
Как мы можем проверить введенное число, которое принимает число только с двумя десятичными цифрами? Например, предположим, что если я введу «12345.655», оно должно перестать принимать число после «12345.65».
И если я ввожу числа перед точкой, оно должно принимать числа.
Пожалуйста, предложите способ.
Спасибо.
Комментарии:
1. «если я ввожу числа перед точкой, оно должно принимать числа» — что вы имеете в виду?
2. @nicael: Давайте
s say "1234.12" is already displayed, then i
отредактируем его с помощью «12345.12». Это также должно сработать.
Ответ №1:
допустим, что ваш элемент ввода el
, тогда
el.onchange = function(){
if( parseFloat( el.value )*1000 % 10 != 0 ){ el.value = el.value.slice( 0, -1 ) }
}
Ответ №2:
Это должно сработать для вас:-
HTML
<input type="text" id="number" onkeyup="fixDecimal()"/>
Javascript
function fixDecimal(){
var value = document.getElementById('number').value;
if(value.split('.')[1] amp;amp; value.split('.')[1].length > 2){
var number = parseFloat(value);
document.getElementById('number').value = number.toFixed(2);
}
}
Ответ №3:
Предположим, что у вас есть ввод, подобный этому:
<input type="text" onKeyUp="this.value=check(this.value)">
Вы можете использовать этот javascript:
function check(num){
num=num.replace(/([A-Za-z])/g,"");
if(String(num).split(".").length>1amp;amp;String(num).split(".")[1].length>2){
num=String(num).slice(0, 2-String(num).split(".")[1].length);
}
return num;
}
Комментарии:
1. @user3272854 работает. Посмотрите на скрипку.
2. @niceal: Пожалуйста, проверьте, что это не работает, введите «1223», затем удалите первые два с 3, чтобы получилось «1323»
3. @user3272854 Итак? Что происходит? Что-то странное? Все работает.