2017-06-16 69 views
1

是否可以在输入数字字段上设置最小值,使其大于0,但用户仍然可以输入0.01例如?输入数字字段超过0?

我已经试过这一点,但它没有工作..

<input required="" name="amount" type="text" min="0.01" value="0.00" /> 
+7

输入数字字段? '类型= “文本”'?? – user7929528

+5

使用'type =“number”' –

+1

_ more than __ value =“0.00”' – George

回答

1

一个简单的解决方案是,一个input事件添加到您。我给了这个输入一个id。如果输入小于0.01,则重置。

也用step来控制精度。

而且,这种情况可能是input = 0.0111,所以在else语句,我们这样做:Math.round(+this.value * 100)/100;+将强制变量成为号码类型和使用Math.round获得输入四舍五入到两位小数)

document.getElementById('test').addEventListener('change', function (e) { 
 
    if(this.value < 0.01){ 
 
     this.value = ''; 
 
    } else { 
 
     this.value = Math.round(+this.value * 100)/100; 
 
    } 
 
});
<input required="" id="test" name="amount" type="number" step="0.01" value="0.00" />

+0

@Shaun更新以处理输入可能为0.0111或0.0199等情况 –

3

使用type="number"min="0"(你也可以使用step="0.01"属性,以限制值可以设置增量):

<input required="" name="amount" type="number" min="0" step="0.01" value="0.01" />

+1

但你仍然可以输入0 – guest

+2

@客户你必须使用JavaScript – user7929528

0

在你的代码type="text" 属性min可用于number,range & date类型。 试试这个:

<input required="" name="amount" type="number" min="0.01" value="0.01" /> 
0

试试这个。

<input required="" name="amount" id="amount" type="number" min="0.01" 
value="0.00" onblur="return validate(this);" /> 
    <script type="text/javascript"> 
function validate(amount){ 
    if(parseFloat(amount.value)<=0){ 
     amount.value = ""; 
     return false; 
    } 
    return true; 
} 
</script>