Javascript 只允许输入浮动值,最大值为100.00

Javascript 只允许输入浮动值,最大值为100.00,javascript,jquery,html,floating-point,Javascript,Jquery,Html,Floating Point,有一个HTML输入文本字段,比如price,要求它的最高价格可以是100.00,最低价格可以是0.00 允许使用此范围的Jquery代码如下: $('#price').keypress(function(event) { if(event.which == 8 || event.which == 0){ return true; } if(event.which < 46 || event.which > 59) { return false; //event

有一个HTML输入文本字段,比如price,要求它的最高价格可以是100.00,最低价格可以是0.00

允许使用此范围的Jquery代码如下:

$('#price').keypress(function(event) {
if(event.which == 8 || event.which == 0){
    return true;
}
if(event.which < 46 || event.which > 59) {
    return false;
    //event.preventDefault();
} // prevent if not number/dot

if(event.which == 46 && $(this).val().indexOf('.') != -1) {
    return false;
    //event.preventDefault();
} // prevent if already dot
});
如果将
type=“text”
更改为
type=“number”
,则应用的Jquery对其不起作用

我们如何允许用户只输入0.00到100.00之间的浮点数,最多只能输入2位小数。例如:4.32、9.99、99.99等。

您可以试试这个(如果输入的值更大,它将在输入中输入100):

工作小提琴:

您可以使用

html

<input type="text" id="price">

请检查下面的代码片段

$('#price')。按键(函数(事件){
if(event.which==8 | | event.which==0){
返回true;
}
if(event.which<46 | | event.which>59){
返回false;
//event.preventDefault();
}//如果不是数字/点,则防止
if(event.which==46&&$(this.val().indexOf('.')!=-1){
返回false;
//event.preventDefault();
}//如果已点,则阻止
});
函数最小值最大值(值、最小值、最大值)
{
if(parseFloat(值)最大值)
返回100;
否则返回值;
}


您的值基于每个按键的unicode数字,而不是文本表示的数字?例如,0=48,1=49,a=65,z=90,[ENTER]=13,等等。您至少可以在输入字段
max=“100.00”
上设置max属性,以更改属性
maxlength=“6”
。任何不使用外部库的方法?它应该是:$('#price').mask('ZZ.00',{translation:{z':{pattern:/[1]/,可选:true});在这种情况下,用户只能输入11.xx之类的数字
$("#price").blur(function() {
    $(this).val(parseFloat(Math.min($(this).val(), 100)).toFixed(2));
});
<input type="text" id="price">
$('#price').mask('Z00.00', {translation:  {'Z': {pattern: /[1]/, optional: true}}});