2014-01-09 39 views
0

我正在處理不應接受數字的文本字段。所以我寫了一個名爲validate()的函數。儘管看起來很有效,但它非常糟糕。用戶可以看到輸入的數據(我的意思是不需要的數字)。我想在顯示之前檢查用戶輸入。如果用戶輸入的數據不是數字,則只能看到它。在JavaScript(或)中有沒有像函數getch()的C語言這個函數給我一個解決方案?不應接受文本字段中的數字

這裏是我的代碼:

<script> 
    function validate() 
    { 
     var s=t1.value; 
     var res=""; 
     for(i=0;i<s.length;i++) 
     { 
     var ascii=s.charCodeAt(i); 
     if(ascii<48 || ascii>57) 
      res+=String.fromCharCode(ascii); 
     } 
     t1.value=res; 
    } 
    </script> 
    <input type="text" id="t1" onkeypress="val();"> 
+1

你'onkeypress'事件試圖調用方法'val' ,而你的JS定義了函數'validate'。這兩件事必須匹配。 – ajp15243

+0

可能的重複:http://stackoverflow.com/questions/19508183/how-to-force-input-to-only-allow-alpha-letters –

回答

4
onkeypress="val()"; 

,而你已經寫了一個名爲validate()

所以將其更改爲

onkeypress="validate()"; 

剩餘似乎不錯的方法,請參閱fiddle

0

嘗試這樣的:

<script> 
    function validate(input){ 
    return (event.keyCode < 48 || event.keyCode > 57); 
    } 
</script> 
<input type="text" id="t1" onkeydown="return validate(this);"> 

運行位置:http://jsfiddle.net/edgarinvillegas/XPvU2/1/

希望這有助於。乾杯

+0

完成,謝謝:) – PoornaChandra

3

從你的html元素按下鍵來調用這個函數| DEMO

號西港島線不被接受和不會在文本框中可以看到

<input type="text" onkeypress="return checks(this,event)" /> 

的JavaScript

function checks(dis,ev) 
{ 
var e = ev || window.event; 
var key = e.which||e.keyCode; 
if(key>=48 && key<=57) 
return false; 
else 
return true; 
} 
+0

謝謝你的影子! – PoornaChandra