2017-06-16 84 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>