2014-02-10 45 views
-1

如何限制輸入文本框,的限制:限制輸入到文本框:僅數字(可以把負號,並且只有單個小數點)

  • 只有數字
  • 只有1週期
  • 可以把在開始負/負號僅
+0

到目前爲止你做了什麼?你在哪裏遇到問題? –

+0

http://caniuse.com/#feat=input-number - 爲不支持的瀏覽器提供了polyfill和解決方法的鏈接,其中沒有多餘的瀏覽器。 – Anthony

+0

谷歌瀏覽器非常好,但Mozilla不支持輸入類型=數字... @AshleyMedway – Momar

回答

0

您可以使用正則表達式來驗證上的文本框的keydown事件輸入:

正則表達式

/^-?\d{2}(\.\d+)?$/ 

作爲一個側面說明做一些研究到JavaScript和jQuery。

+0

我忘了如何使用正則表達式。請幫幫我。如何使用它? – Momar

+0

http://bit.ly/1h3RQ51 –

1

下面是代碼:

HTML

<input type="text" id="main"></input> 

的Javascript

var main = document.getElementById('main'); 
main.onkeydown = codeFunc; 

function codeFunc(e) { 
    var code = e.which || e.keyCode; 
    var value = e.currentTarget.value; 
    var letter = String.fromCharCode(code); 
    codeFunc.isNegative = value.indexOf("-") > -1; 
    codeFunc.isMiddle = value.length != 0; 
    var letter = String.fromCharCode(code); 
    if (letter == "-" && !codeFunc.isNegative && !codeFunc.isMiddle) { 
     codeFunc.isMiddle = true; 
     codeFunc.isNegative = true; 
     return true; 
    } else if (letter == "¾" && !codeFunc.isDecimal) { 
     codeFunc.isMiddle = true; 
     codeFunc.isDecimal = true; 
     return true; 
    } 
    var test = /[\d\b]+/.test(letter); 
    if (!codeFunc.isMiddle) { 
     codeFunc.isMiddle = test; 
     return codeFunc.isMiddle; 
    } 
    return test; 
} 

JSFIDDLE

+0

感謝您的非常友好的幫助! 我會嘗試。 – Momar

+0

只能輸入數字和1個週期,但不能在輸入框的開頭放置1個負號/負號。 – Momar

+0

@Momar如果按下'BACKSPACE',則不能。你也應該處理。嘗試不用按退格鍵。 –

相關問題