2012-10-14 84 views
-2

我做了很長時間的研究,但是我還沒有找到類似的情況。在輸入類型編號中添加千位和小數點分隔符

我使用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); 
     } 
    }, 

,然後我輸入型數i已經把劇本在我的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> 

問題是,我不知道如何把小數點和千位分隔符在所有的瀏覽器中工作。正如你可以在上面看到我剛纔把步=「0.00但這個工程只是在FF

你能幫助我如何添加小數和千個分隔符正常工作?

感謝

回答

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(''),' ','.')); 
});​ 
+0

謝謝,你介意告訴我它是如何看待我的代碼? – Koala7

+0

我在嘗試,但實際上我並不知道爲什麼可插入的插件不響應它。 我認爲這是因爲jeditable將文本轉換爲表單然後返回... – LexLusa

+0

好吧,您現在怎麼知道這個問題呢?我迷路了,所有的建議和建議都非常受歡迎 – Koala7

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(''),' ','.')); 
});​ 
相關問題