允许html输入框只能输入一个完整的数字且正好是小数.5
Allow html input box to only enter one full number and exactly decimal .5
我正在制作要求用户输入小数点后一位数字的网络应用程序。我限制用户使用此 javascript 代码
输入其他字符
html
<input type="number" name='days' class="w3-input w3-padding-tiny" id="cntday" onkeypress="return isNumberKey(event)" placeholder="Enter days"/>
javascript
function isNumberKey(evt) {
var charCode = (evt.which) ? evt.which : evt.keyCode;
if (charCode != 46 && charCode > 31 &&
(charCode < 48 || charCode > 57))
return false;
return true;
}
但是这个功能只能防止用户输入数字以外的字符。
我需要防止用户输入多于一位小数以及输入的小数点应为 .5
是这样的
如果用户输入 5.55,它应该替换为 5.5 或阻止用户输入额外的小数
如果用户输入 5.2 或任何小数,则应将其替换为 5.5,换句话说,用户只能输入带小数 .5 的数字
如何使用当前的 onkeypress 函数实现此目的?
这不是另一个问题的重复。停止标记此
您可以将数字分成两部分来完成:
自然数第 1 部分。
第 2 部分 十进制数。
然后您可以将任何输入的十进制数替换为 .5
像这样:
$('input').keyup(function() {
var value = this.value;
var pos = value.indexOf(".");
var result;
if (pos !== -1) {
var part1 = value.substr(0, pos);
var part2 = value.substr(pos);
result = part1 + part2.replace(part2,".5")
$('input').val(result);
}
});
function isNumberKey(evt) {
var charCode = (evt.which) ? evt.which : evt.keyCode;
if (charCode != 46 && charCode > 31 &&
(charCode < 48 || charCode > 57))
return false;
return true;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="number" name='days' class="w3-input w3-padding-tiny" id="cntday" onkeypress="return isNumberKey(event)" placeholder="Enter days"/>
使用这个
$('#cntday').keyup(function() {
if(this.value %1 != 0.5){
this.value = this.value - this.value%1 + 0.5;
}
});
条件检查是否输入了小数,一旦输入小数并输入数字,它就会立即更改为 .5
它满足您提到的两个要求。
在这里查看 https://jsfiddle.net/xn0koawx/
我正在制作要求用户输入小数点后一位数字的网络应用程序。我限制用户使用此 javascript 代码
输入其他字符html
<input type="number" name='days' class="w3-input w3-padding-tiny" id="cntday" onkeypress="return isNumberKey(event)" placeholder="Enter days"/>
javascript
function isNumberKey(evt) {
var charCode = (evt.which) ? evt.which : evt.keyCode;
if (charCode != 46 && charCode > 31 &&
(charCode < 48 || charCode > 57))
return false;
return true;
}
但是这个功能只能防止用户输入数字以外的字符。 我需要防止用户输入多于一位小数以及输入的小数点应为 .5
是这样的
如果用户输入 5.55,它应该替换为 5.5 或阻止用户输入额外的小数
如果用户输入 5.2 或任何小数,则应将其替换为 5.5,换句话说,用户只能输入带小数 .5 的数字
如何使用当前的 onkeypress 函数实现此目的?
这不是另一个问题的重复。停止标记此
您可以将数字分成两部分来完成:
自然数第 1 部分。
第 2 部分 十进制数。
然后您可以将任何输入的十进制数替换为 .5
像这样:
$('input').keyup(function() {
var value = this.value;
var pos = value.indexOf(".");
var result;
if (pos !== -1) {
var part1 = value.substr(0, pos);
var part2 = value.substr(pos);
result = part1 + part2.replace(part2,".5")
$('input').val(result);
}
});
function isNumberKey(evt) {
var charCode = (evt.which) ? evt.which : evt.keyCode;
if (charCode != 46 && charCode > 31 &&
(charCode < 48 || charCode > 57))
return false;
return true;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="number" name='days' class="w3-input w3-padding-tiny" id="cntday" onkeypress="return isNumberKey(event)" placeholder="Enter days"/>
使用这个
$('#cntday').keyup(function() {
if(this.value %1 != 0.5){
this.value = this.value - this.value%1 + 0.5;
}
});
条件检查是否输入了小数,一旦输入小数并输入数字,它就会立即更改为 .5 它满足您提到的两个要求。 在这里查看 https://jsfiddle.net/xn0koawx/