2013-10-15 21 views
0

我想創建TextField它只允許數字。爲此,我編寫了下面的代碼,但它不起作用。我如何限制文本域

腳本代碼:

function numberTextField(){ 
var keyAsciiValue=event.keyCode||event.which; 
console.log(keyAsciiValue); 
if (keyAsciiValue>=48&&keyAsciiValue<=57) { 
    console.log("This is Number"); 
    return true; 
}else{ 
    console.log("This is Not a Number"); 
    return false; 
}; 
} 

的html代碼:

<input type="text" onkeyup="numberTextField()" placeholder="NoOfRows" id="fieldsCount2"/> 

誰能幫助我。

謝謝。

+0

Shadow

+0

檢查這個http://jsfiddle.net/hA423/14/ –

+0

@ Mr.Alien你建議,它工作正常。但我不明白前兩行的語法.'evt =(evt)? evt:window.event; var charCode =(evt.which)? evt.which:evt.keyCode;' – user2873816

回答

0
function numberTextField(evt) 
{ 
    var charCode = (evt.which) ? evt.which : event.keyCode 
    if (charCode > 31 && (charCode < 48 || charCode > 57)) 
    { 
     console.log("This is Not a Number"); 
     return false; 
    } 
    else 
    { 
      console.log("This is a Number"); 
      return true; 
    }   


} 

和HTML

<input type="text" onkeypress="return numberTextField(event)" placeholder="NoOfRows" id="fieldsCount2"/> 
+0

你寫了2個return語句.'retuen true'屬於else條件 – user2873816

+0

檢查編輯答案 – Dilantha

+0

更新回答也沒有工作。 – user2873816

0

更新的代碼:

<input type="text" value="" onkeypress="this.value = this.value.replace(/[^0-9]$/,'')" onkeyup="this.value = this.value.replace(/[^0-9]$/,'')" placeholder="NoOfRows" id="fieldsCount2"/> 
+0

無法正常工作,只需輸入一個字符,並立即輸入一個數字。 –

+0

或者只需按下'a'之類的任何鍵並且不要釋放它。 –

+0

感謝您發現故障。請檢查更新的代碼...希望它能改變您的想法。:) –