我正在创建一个基本上只有数字的字段,除了在千,百万等标记处插入逗号分隔符。
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>
如果有任何帮助就太好了。让一个字段以一种用户可读和友好的方式输入收入,这是多么复杂啊!
change type="number"
to type="text"
浏览器正在解释type="number"
,并确保你不能在该字段中除了数字以外的任何东西,这就是为什么它变成空白。