2

ドット「.」が入力 (type=number) フィールドに入力されている場合、コンマ「,」に置き換えてください。

$(box).find('input[type=number]').keypress(function(evt){
        if(evt.which==46){
            $(this).val($(this).val()+',');
            evt.preventDefault();
        }
    });

イベントは適切に発生しますが、代わりに、フィールドは完全に空になります。どうしたの?

編集

私がこれを行っている理由は、Chrome (最新バージョン) が、HTML5 の推奨事項に反して、input type=number でカンマを使用し、ドットを破棄するためです。現在、アプリを他の場所でテストできないため、Chrome 用にのみ開発しています。この (異常な?) 状況についてコメントをいただければ幸いです。

4

6 に答える 6

1

ドキュメントがまだ準備できていない可能性があります。

jQuery(document).ready(function() {
  // your code
});
于 2012-11-23T16:55:07.433 に答える
0

文字置換を任意のカーソル位置で機能させるには、keyup イベントにバインドし、this.val() に既に挿入されている文字を置換します。

$(document).on('keyup','.myField"]', function(e,i){
    if(e.keyCode==107)
    {
        var start = this.selectionStart,
            end = this.selectionEnd;
        $(this).val($(this).val().replace(/\+/,'|'));
        this.setSelectionRange(start, end);
    }
});
于 2014-11-11T15:14:10.490 に答える
0

ここで私たちは私の友人です。理由はわかりませんが、有用なキーコードは 110 ではなく 190 のようです。

試す :

$(document).ready(function(){

     $(document).find('input[type=number]').live('keydown',function(evt){
            if(evt.which == 190){
                $(this).val($(this).val()+",");
                evt.preventDefault();
            }
        });

});

これはライブプレビュー用です http://jsfiddle.net/RTEcJ/8/

キーコードを見て、必要なキーコードを確認するために入力を試すことができます: http://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes

于 2012-11-23T16:42:57.573 に答える
0

次のように部分文字列を使用できます。

str.substring(0,str.length - 1) + ','

ただし、これはおそらく理想的なソリューションではありません。

于 2012-11-23T16:43:40.437 に答える
0

あなたのコードは、jsfiddle で実行中に動作するようです:

$(document).find('input').keypress(function(evt){ 
        if(evt.which==46){
            $(this).val($(this).val()+',');
            evt.preventDefault();
        }
    });​

http://jsfiddle.net/cornel_gav/cDE3L/

于 2012-11-23T16:46:51.377 に答える