-1

私は長い間調査を行ってきましたが、同様のケースは見つかりませんでした。

プロジェクトにjeditableプラグインを使用していますが、入力タイプ番号を作成する必要がありました

最初に、jquery.jeditable.js で入力タイプ番号を作成しました

    number: {
        element : function(settings, original) {
            var input = $('<input type="number" step="0.00">');
            if (settings.width  != 'none') { input.attr('width', settings.width);  }
            if (settings.height != 'none') { input.attr('height', settings.height); }
            /* https://bugzilla.mozilla.org/show_bug.cgi?id=236791 */
            //input[0].setAttribute('autocomplete','off');
            input.attr('number','off');
            $(this).append(input);
            return(input);
        }
    },

そして、スクリプトをhtmlファイルに入れました

    $('.number').editable(function(value, settings) { 
     console.log(this);
     console.log(value);
     console.log(settings);
     return(value);
  }, { 
     type    : 'number', 
     style  : "inherit"
 });

私のhtml

<p class="number" style="text-align: right;">000,00</p>

問題は、すべてのブラウザーで小数点と千の区切り記号を機能させる方法がわからないことです。上記でわかるように、step="0.00を入れただけですが、これは FF でのみ機能します

小数点と桁区切り記号を正しく追加する方法を教えてください。

ありがとう

4

2 に答える 2

0

これを試すことができます:

function format(comma, period) {
comma = comma || ',';
period = period || '.';
var split = this.toString().split('.');
var numeric = split[0];
var decimal = split.length > 1 ? period + split[1] : '';
var reg = /(\d+)(\d{3})/;
    while (reg.test(numeric)) {
    numeric = numeric.replace(reg, '$1' + comma + '$2');
    }
return numeric + decimal;}

$('#mydiv').live('keyup', function(){
$(this).val(format.call($(this).val().split(' ').join(''),' ','.'));
});​
于 2012-10-14T10:47:43.983 に答える
0

このような?

    number: {
        element : function format(comma, period) {
            comma = comma || ',';
            period = period || '.';
            var split = this.toString().split('.');
            var numeric = split[0];
            var decimal = split.length > 1 ? period + split[1] : '';
            var reg = /(\d+)(\d{3})/;
                while (reg.test(numeric)) {
                    numeric = numeric.replace(reg, '$1' + comma + '$2');
                    }
                return numeric + decimal;}
            var input = $('<input type="number"');
            if (settings.width  != 'none') { input.attr('width', settings.width);  }
            if (settings.height != 'none') { input.attr('height', settings.height); }
            /* https://bugzilla.mozilla.org/show_bug.cgi?id=236791 */
            //input[0].setAttribute('autocomplete','off');
            input.attr('number','off');
            $(this).append(input);
            return(input);
        }
    },



$('.number').live('keyup', function(){
$(this).val(format.call($(this).val().split(' ').join(''),' ','.'));
});​
于 2012-10-14T11:32:37.240 に答える