2013-04-25 107 views
0

我有一個網頁,我在其中輸入數據到<input />,就像1000,所以我希望它看起來像1000,但它不會更改它僅顯示的ID值因爲我在其他計算中使用相同的ID,所以如果1,000,那麼它會顯示NaN ...我怎麼能避免這種情況?如何在HTML網頁的文本字段中添加逗號

<input type="text" id="test" onBlur="addCommas()"> 
<script> 
    function addCommas(nStr){ 
     var offset = nStr.length % 3; 
     if (offset == 0) 
      return nStr.substring(0, offset) + nStr.substring(offset).replace(/([0-9]{3})(?=[0-9]+)/g, "$1,"); 
     else 
      return nStr.substring(0, offset) + nStr.substring(offset).replace(/([0-9]{3})/g, ",$1"); 
    } 
    alert(addCommas("1234567")); 
</script> 

我有這個代碼從論壇...沒有人有一個想法如何使這個功能簡單,所以,它只是顯示了在輸入框中,但是當我得到的ID值,這表明1000?

+0

http://stackoverflow.com/questions/2901102/how-to-print-a-number-with-commas -as-thousands-separators-in-javascript可能對你有所幫助 – Pete 2013-04-25 09:09:10

+0

@Pete謝謝支持,請你告訴我如何在我的id中使用這種方法,以及它將如何改變顯示 – 2013-04-25 09:10:57

回答

0

測試你與this值:

function isNumber(n) { 
    return !isNaN(parseFloat(n)) && isFinite(n); 
} 

它會阻止你的NAN的。

使用@皮特的link to know how to print a number with commas as thousands separators in JavaScript

編輯有關您的評論: 然後你可以使用一個<input type="hidden" id="testValue" />並存儲在它的真正價值。

所以您的代碼將是這樣的:

<input type="text" id="test" onBlur="addCommas(this)"> 
<input type="hidden" id="testRealValue"> 
<script> 
    function isNumber(n) { 
     return !isNaN(parseFloat(n)) && isFinite(n); 
    } 
    function addCommas(input){ 
     nStr = input.value; 
     if(!isNumber(nStr))return; 
     document.getElementById("testRealValue").value = nStr; 
     var offset = nStr.length % 3; 
     if (offset == 0) 
      input.value = nStr.substring(0, offset) + nStr.substring(offset).replace(/([0-9]{3})(?=[0-9]+)/g, "$1,"); 
     else 
      input.value = nStr.substring(0, offset) + nStr.substring(offset).replace(/([0-9]{3})/g, ",$1"); 
    } 
</script> 

這裏是jsfiddle

+0

我不問NAN有沒有要求顯示只有在輸出只有 – 2013-04-25 09:11:43

+0

你可以請在jsfiddle編輯我沒有得到這個 – 2013-04-25 09:21:51

+0

它也會改變ID值e或它只是這樣顯示 – 2013-04-25 09:25:26

相關問題