2014-02-19 94 views
0

我想尋求一些幫助....我的問題是我的腳本限制了一切,但數字...我想要做的是...我可以鍵入雙數字...像1.232 ....我不想限制點(.) ...任何人都可以幫我做到這一點?使用javascript在HTML中輸入文本框的限制

當前代碼:

<input autocomplete="off" class="search_form_input" name="optA1" id="optA1" onkeypress="return isnumeric(event)" type="text" onchange="optTotal1()" /> 

腳本代碼:

<script type="application/javascript"> 

    function isnumeric(evt) 
     { 
     var CharacterCode = (evt.which) ? evt.which : event.keyCode 

     if (CharacterCode > 31 && (CharacterCode < 48 || CharacterCode > 57)) 
      return false; 

     return true; 
     } 

</script> 
+1

加上'警報(CharacterCode);'你定義後,刷新頁面,鍵入'.'輸入,記錄的數量,加上'&& CharacterCode = X'到您的if語句!其中X是您錄製的號碼,請刪除您的「提醒」。 – cmorrissey

+0

不確定,但您的代碼允許我輸入的不僅僅是數字。 – putvande

+0

也許看看這裏的一些建議:http://stackoverflow.com/questions/2808184/ – HJ05

回答

1

喜歡的東西:

$('input').on('keydown', function(e) { 
    var dot = $(this).val().indexOf('.'); 
    if((e.which >= 48 && e.which <= 57) || 
     (e.which >= 96 && e.which <= 105) || 
     ((e.which == 190 || e.which == 110) && dot == -1) 
     ) return true; 
    return false; 
}); 

這也將檢查你的數字鍵盤,如果你已經在你的價值.

Fiddle

+0

謝謝老兄......它的作品:D – user3311499

-1

我會考慮一個正則表達式:

var x=document.getElementById("optA1").value; return /[\d\.]+/.test(x);

或者你也可以通過函數傳遞值和以這種方式使用它。

+0

這不會工作,'CharacterCode'將始終通過,因爲它是一個數字。 – putvande

+0

哎呀,我以爲CharacterCode是真正的人物!病情更新! –

相關問題