逗号分隔符的“仅数字”字段

时间:2013-06-19 15:56:20

标签: php javascript numbers comma keycode

我正在创建一个基本上只有数字的字段,除了在千万,百万等标记处插入逗号分隔符。

In似乎遇到的第一个问题是keycode 188是否适用于允许使用逗号。在这里使用代码时,我无法在字段中输入逗号,即使我似乎已将其排除在返回false之外:

function forceNumber(event){
    var keyCode = event.keyCode ? event.keyCode : event.charCode;
    if((keyCode < 48 || keyCode > 58) && keyCode != 188)
        return false;
}

这是我用来添加逗号分隔符的脚本,我不完全确定它是否是这个脚本,刚引用的脚本,或者我是如何在PHP文件中调用它们导致它不是功能。这是逗号插入js:

function numberWithCommas(n){
    n = n.replace(/,/g, "");
    var s=n.split('.')[1];
    (s) ? s="."+s : s="";
    n=n.split('.')[0]
    while(n.length>3){
        s=","+n.substr(n.length-3,3)+s;
        n=n.substr(0,n.length-3)
    }
    return n+s
}

最后是PHP调用:

<p>
            <label for="yearly_income"><?php _e('Yearly Income<br><i>Used to determine  fee per session</i>','mydomain') ?><br />
                <input type="number" name="yearly_income" id="yearly_income"     class="input" value="<?php echo esc_attr(stripslashes($yearly_income)); ?>" size="25"     onkeypress="return forceNumber(event);" onkeyup="this.value=numberWithCommas(this.value);"     /></label>
</p>

对此的任何帮助都会很精彩。令人惊讶的是,让一个领域以一种用户可读和友好的方式输入收入之类的工作是多么复杂!

1 个答案:

答案 0 :(得分:0)

type="number"更改为type="text"

演示fiddle

浏览器正在解释type="number",并确保您不能在该字段中添加任何数字,这就是为什么它变为空白。