2012-07-31 151 views
0

可能重複:
JavaScript: formatting number with exactly two decimals如何輸入字段限制爲數字只能用兩個小數點

我需要一個JS(jQuery的)腳本,幫助我限制號碼的輸入到小數點後兩位。

我試過this,它完美地限制了我的輸入只能浮動或整數。但我無法理解如何將其限制爲兩位小數。

我也看了很多其他答案,但似乎沒有阻止用戶在輸入時輸入多於兩位數字。

有什麼建議嗎?感謝名單。

編輯:我的代碼,如果它可以幫助

形式:

<form method="post" id="split_form" 
    action="?name=ajax&case=split_action&sid=' . $id . '" 
    onSubmit="return checkform(this);" > 

    <table class="default" cellpadding="0" cellspacing="0"> 
     <tr><td><input class="numeric1" type="text" name="summ_1" value="" /> 
     <tr><td><input class="numeric2" type="text" name="summ_2" value="" /> 
    </table> 
    <input type="submit" class="submit" value="ok" /> 

</form> 

JS腳本:

<script type="text/javascript" src="/js/jquery.numeric.js"></script> 
<script language="JavaScript" type="text/javascript"> 
    $(".numeric1").numeric(); 
    $(".numeric2").numeric(); 

    function checkform (form) { 
     var sum1 = form.summ_1.value; 
     var sum2 = form.summ_2.value; 
     var new_summ = parseFloat(sum1) + parseFloat(sum2); 
     var summ = parseFloat(' . $row[1]['summ'] . '); 

     if ((sum1 > 0 && sum2 > 0) && (new_summ == summ)) { 
      return true; 
     } else { 
      return false ; 
     } 
    } 
</script> 
+0

首先爲什麼他們都有不同的課程?你可以給它們同一個類,'數字',然後調用'$(「。numeric」)。numeric()'。如果他們需要成爲不同的班級,可以考慮讓他們兩個班級有共同的班級。 – ClarkeyBoy 2012-07-31 07:16:47

+0

我不確定他們是否會與同一班級合作,所以我重命名了他們。但是,這不是問題。 – Peon 2012-07-31 07:17:50

+2

查看[this](https://github.com/johnedmonds/jQuery-Plugins/commit/fc0fde93d8d595c22ff0af545a63c32f1fff936c)數字 – 2012-07-31 07:28:35

回答

1

numeric plugin, line 135,數字項處理。目前,他們總是被允許的。你可以修改這個插件允許數字只有小數點是不存在的,或不超過兩步之遙:

var decimalIx = $(this).val().indexOf(decimal); 
allow = decimalIx == -1 || decimalIx >= $(this).val().length - 2; 

我打算讓-2配置的,但亞歷克斯球在評論中指出,the work has already been done

+0

@AlexBall對你也是。 – Peon 2012-07-31 07:45:33

+0

好的,很酷的答案;-) – 2012-07-31 09:00:55

相關問題