2015-02-23 18 views
0

我有這個功能,如果一個號碼輸入到我的文本框,用於驗證:的Jscript - 讓之前和值後一數字僅文本框

function mudavalor(sender, event) { 
    var stringAntesDepois = sender.value; 
    if (event.keyCode > 47 && event.keyCode < 58) { 
     stringAntesDepois += String.fromCharCode(event.keyCode); 
    } 

    sender.value = ""; 
    sender.value = stringAntesDepois; 
} 

調用由:

<input class="texto" runat="server" onkeydown="mudavalor(this,event)" id="Text1" type="text" /> 

的問題是奇怪的是,如果我沒有在IF行之前放置「alert(event.keyCode)」,它就不起作用。如果我這樣做:

function mudavalor(sender, event) { 
    var stringAntesDepois = sender.value; 
    alert(event.keyCode); 
    if (event.keyCode > 47 && event.keyCode < 58) { 

然後它工作得很好。

我需要做的:

1 - 檢查鍵輸入爲0-9

2之間的數字 - 更新 「文本1」 領域,如果它是一個數字

3 - 後在「文本1」字段中的任何改變,我需要他的價值分配到標籤上

PS:我不能用「數字」類型HTML5

歡迎任何幫助

回答

0

我想你想是這樣的:

http://jsfiddle.net/snr00qng/

您應該使用event.preventDefault()忽視鍵,或者說,忽略默認行爲。

這是你應該想做的事:

function mudavalor(){ 
    if(event.keyCode>=48 && event.keyCode<=57){ 
     document.getElementById('txt').textContent+= String.fromCharCode(event.keyCode); 
    } 
    else 
    event.preventDefault(); 
} 
+0

太棒了!謝謝。我把它通過不同的方式工作: VAR X = parseInt函數(sender.value); 如果(X <0 || isNaN(X)){ 警報( 「上方0只有數字!」); sender.value =「」; sender.style.border =「3px純紅色」; } 這樣我可以證明他錯了類型 – user293677 2015-02-23 22:51:58

+0

isNaN工作時用戶當用戶鍵入一個字母或數字+字母的組合,而x <0的作品,如果用戶鍵入一個非法數字 – user293677 2015-02-23 22:55:28

相關問題