2014-07-25 61 views
0

我對jQuery非常不熟悉,所以請耐心等待。我有一些數字字段,用逗號,美元符號和用戶輸入的百分號進行格式化。當點擊一個按鈕時,下面的功能被觸發。我試圖完成的任務是讓這些字段自己格式化,以便我可以進行一些計算並將結果傳遞給其他字段(我意識到這可能不是執行此操作的最佳方式)。否則,其他字段只填充「NaN」。在計算之前從格式化字段中刪除格式

該函數用於刪除逗號和百分號,但出於某種原因不會刪除具有它們的兩個字段中的美元符號。

下面是一個jQuery插件格式字段中的兩個功能:

$('.dollar').keyup(function() { 
    $(this).autoNumeric('init', {aSep: ',', aSign: '$', mRound: 'u', mDec: '0'}) 
}); 

$('.percentage').keyup(function() { 
    $(this).autoNumeric('init', {aSep: ',', aSign: '%', pSign: 's', mRound: 'u', mDec: '0'}) 
}); 

這裏是unformats領域,除其他事物的功能:

$('#resultsBtn').on('click', function(){ 
      $('#output .sectionBox').fadeIn() 
      ,$('#resultsBtn').hide() 
      ,$('#fieldI').val('70') 
      ,$('[id^=field]').each(function(){$(this).val($(this).val().replace(/,/g,''))}) 
      ,$('.dollar').each(function(){$(this).val($(this).val().replace(/$/g,''))}) 
      ,$('.percentage').each(function(){$(this).val($(this).val().replace(/%/g,''))}) 
     });` 

回答

0

你你的函數的格式是錯的,你應該試試這個:

$('#resultsBtn').on('click', function() { 
    $('#output .sectionBox').fadeIn(); 
    $('#resultsBtn').hide(); 
    $('#fieldI').val('70'); 
    $('[id^=field]').each(function() { 
     $(this).val($(this).val().replace(',', '')); 
    }) 
    $('.dollar').each(function() { 
     $(this).val($(this).val().replace('$', '')); 
    }); 
    $('.percentage').each(function() { 
     $(this).val($(this).val().replace('%', '')); 
    }); 
}); 

請注意我刪除的逗號和我在每個函數結尾添加的分號。 你在替換中確實不需要正則表達式。

一個的jsfiddle你:http://jsfiddle.net/Bvfq8/2/

+0

男人,我希望這將是東西更加迷人!我一直都在做這個錯誤。謝謝! – Aeromax

+0

哈哈沒問題。 –