2015-09-17 15 views
0

在asp.net文本框中,我調用了一個javascript函數,我寫了這個函數來限制文本框中的'位數'項,但我也想允許'+'符號但不能解決它。我的JS函數如何限制特定數據?

這是我到目前爲止嘗試過的。

function isNumberKey(evt) { 
      var charCode = (evt.which) ? evt.which : event.keyCode 
      if (charCode > 31 && (charCode < 48 || charCode > 57)) 
       return false; 

      return true; 
     } 

回答

0

您需要檢查+以及明確,修改您如果到:

if (charCode > 31 && (charCode < 48 || charCode > 57) && charCode != 43) 

這裏是工作示例:

function isNumber(evt) { 
 
    evt = (evt) ? evt : window.event; 
 
    
 
    var charCode = (evt.which) ? evt.which : evt.keyCode; 
 
    if (charCode > 31 && (charCode < 48 || charCode > 57) && charCode != 43) { 
 
     return false; 
 
    } 
 
    return true; 
 
}
<input type="text" class="textfield" value="" id="extra7" name="extra7" onkeypress="return isNumber(event)" />

1

只是扭轉你的條件並添加的ASCII碼這是43返回true

function isNumberKey(evt) { 
 
      var charCode = (evt.which) ? evt.which : event.keyCode 
 
      if ((charCode >=48 && charCode <= 57) || (charCode == 43)) 
 
       return true; 
 
      return false; 
 
     }

+0

太好了!工作,但爲什麼扭轉條件先生? – Covert

+1

它的代碼優化:)請接受它是否有幫助 – Tushar

1

如果能夠限制數字,你也可以輸入「+」,我猜你需要ASCII表和對應的值,即如何進行限制數字和charCode > 31好像沒用,如果你正在檢查只位數: http://www.asciitable.com/

所以如果你想檢查+

charCode != 43 
0

Working Demo

Ascii Table

function isNumber(evt) { 
evt = (evt) ? evt : window.event; 
var charCode = (evt.which) ? evt.which : evt.keyCode; 
if (charCode > 31 && (charCode < 48 || charCode > 57)&& charCode != 43) { 
    return false; 
} 
return true; 
} 
相關問題