私は、千、百万などのマークにコンマ区切りを挿入する以外に、基本的に数値のみのフィールドの作成に取り組んでいます。
In が直面しているように見える最初の問題は、キーコード 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>
これに関する支援は素晴らしいでしょう。ユーザーが読みやすくフレンドリーな方法で収入を入力するなど、フィールドを機能させるのは非常に複雑です。