我有一个离开文本字段的脚本
onblur="forA();"
将用户输入数字转换为“数字+美元”,但它看起来非常不专业。脚本是:
<script type="text/javascript">
function forA()
{
document.getElementById('field1').value =
document.getElementById('field2').value +" USD";
}
</script>
因此,这会将“12345.75
”转换为“12345.75 USD
”。 Ughh。
你知道如何将这个数字转换成适当的自我吗? 12345.75
至$12,345.75
我的第二个相关问题是徒劳无功......
onclick =“document.getElementById('field1')。value = (Math.round((parseFloat(document.getElementById('11091')。value,2)* 100))/ 100 + Math.round((parseFloat(document.getElementById('1254.75')。value,2)* 100))/ 100).toFixed(2);“
field1(12345.75)的值是否也可以转换为“$ 12,345.75”
提前致谢。
答案 0 :(得分:1)
function forA()
{
document.getElementById('field1').value = "$" + addCommas(document.getElementById('field2').value) +" USD";
}
function addCommas(nStr)
{
nStr += '';
x = nStr.split('.');
x1 = x[0];
x2 = x.length > 1 ? '.' + x[1] : '';
var rgx = /(\d+)(\d{3})/;
while (rgx.test(x1)) {
x1 = x1.replace(rgx, '$1' + ',' + '$2');
}
return x1 + x2;
}
查看以下示例:http://jsfiddle.net/CS67m/1/
逗号脚本来自:http://www.mredkj.com/javascript/nfbasic.html 我之前使用它,它就像一个魅力。
以下是您要求的其他功能的已更新示例: http://jsfiddle.net/CS67m/3/
HTML
Number 1<input id="field1" value="$1,230.12"/><br>
Number 2<input id="field2" value="$1,230.12"/><br>
Sum<input id="sum" readonly=true/>
<button id="submit">Add</button>
JS
function forA()
{
document.getElementById('sum').value = "$" + addCommas(getNumericValue('field1') + getNumericValue('field2')) +" USD";
}
function addCommas(nStr)
{
nStr += '';
x = nStr.split('.');
x1 = x[0];
x2 = x.length > 1 ? '.' + x[1] : '';
var rgx = /(\d+)(\d{3})/;
while (rgx.test(x1)) {
x1 = x1.replace(rgx, '$1' + ',' + '$2');
}
return x1 + x2;
}
function getNumericValue(id)
{
return stripAlphaChars(document.getElementById(id).value);
}
//Source: http://www.27seconds.com/kb/article_view.aspx?id=31
function stripAlphaChars(pstrSource)
{
var m_strOut = new String(pstrSource);
m_strOut = m_strOut.replace(/[^0-9\\.]/g, '');
return parseFloat(m_strOut);
}