我正在創建基本上只有數字的字段,並且逗號分隔符在千位,百萬位等處插入。使用逗號分隔符的「僅數字」字段
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>
在這個任何援助將是美好的。令人驚訝的是,讓一個領域適合像用戶可讀和友好的方式輸入收入一樣工作是多麼複雜!
您的所有用戶是否都使用相同的語言環境? – Paulpro
是不是44而不是188? – epascarello
永遠不要限制用戶可以鍵入的內容。相反,等待他們完成打字,然後檢查他們輸入的內容是否有效,並告訴他們是否不正確。 –