2014-02-07 17 views
0

當使用jQuery計算函數的表單輸入時,有沒有辦法將逗號(,)看作點(。)? 我試圖取代,但在計算時考慮逗號作爲點嗎?

function calculate(e){ 
    var bredd2 = bredd.toString().replace(",", "."); 
    var djup2 = djup.toString().replace(",", "."); 

    $('#m2').val($('#bredd2').val() * $('#djup2').val()); 
    $('#totalpris').val($('#m2').val() * $('#m2pris').val()); 
} 
+0

,讓您在數字做計算,你應該分析你的字符串:'parseFloat(someString)' –

+1

什麼是'bredd '和'djup2'?您似乎沒有在正確的變量上進行替換...... –

+0

僅供參考,'replace'只替換提供的字符串的第一次出現。 –

回答

1

你做了錯誤的變量替換我不起作用。不要

function calculate(e){ 
    var bredd2 = parseFloat($('#bredd2').val().replace(",", ".")), 
     djup2 = parseFloat($('#djup2').val().replace(",", ".")), 
     m2pris = parseFloat($('#m2pris').val().replace(",", ".")), 
     m2 = bredd2 * djup2, 
     totalpris = m2 * m2pris; 

    $('#m2').val(m2); 
    $('#totalpris').val(totalpris); 
} 

當然,你可以創建一個效用函數,以緩解是:

$.fn.parsedVal = function(){ 
    return parseFloat(this.val().replace(",", ".")) 
} 

function calculate(e){ 
    var m2 = $('#bredd2').parsedVal() * $('#djup2').parsedVal(), 
     totalpris = m2 * $('#m2pris').parsedVal(); 

    $('#m2').val(m2); 
    $('#totalpris').val(totalpris); 
} 
+0

謝謝! :) ... 有用 – user3214817