Я хочу ввести десятичную точку в текстовое поле. Я хочу ограничить пользователя, введя более двух цифр после десятичной точки. Я написал код для достижения этого в событии Keypress.
function validateFloatKeyPress(el, evt) {
var charCode = (evt.which) ? evt.which : event.keyCode;
if (charCode != 46 && charCode > 31 && (charCode < 48 || charCode > 57)) {
return false;
}
if (charCode == 46 && el.value.indexOf(".") !== -1) {
return false;
}
if (el.value.indexOf(".") !== -1)
{
var range = document.selection.createRange();
if (range.text != ""){
}
else
{
var number = el.value.split('.');
if (number.length == 2 && number[1].length > 1)
return false;
}
}
return true;
}
<asp:TextBox ID="txtTeamSizeCount" runat="server" onkeypress="return validateFloatKeyPress(this,event);" Width="100px" MaxLength="6"></asp:TextBox>
Код работает, но проблема заключается в следующем: если я введу ". 75" , а затем измените его на "1.75" , это невозможно. Единственный способ сделать это - удалить его полностью, а затем ввести "1.75" . Эта проблема возникает, если в текстовом поле уже записано 2 цифры после десятичного знака. Условия, которые я налагаю,
a) После десятичной даты он должен иметь по крайней мере 1 или 2 цифры. Для ex .75 или .7 или 10.75 или 333.55 или 333.2 принимается. но не .753 или 12.3335
b) Перед десятичной точкой это не обязательно для пользователя, чтобы ввести значение. Пользователь также должен также ввести целые числа.
Можете ли вы сказать мне, что может быть проблемой?
Спасибо,
Jollyguy