2013-06-21 48 views
0

如何減去領域我想減去2個領域,這兩個領域都在這個格式的面具:00.000,00通過的Javascript

我沒有「提交」按鈕,我想它使用onkeypress事件做

這裏是我的代碼:

<label>FIELD 1:</label> 
    <td width="80%"> 
     <input type="text" name="field1" id="field1" size="15" onKeyPress="return(mascaraMoeda(this,'.',',',event))" /> 
    </td> 
<label for="valorDesconto">FIELD2</label> 
    <td width="80%"> 
     <input type="text" name="field2" id="field2" size="15" onKeyPress="return(mascaraMoeda(this,'.',',',event))" /> 
    </td> 

這裏是結果

<label>Resul:</label> 
<input type="text" name="Resul" id="Resul" size="15" /> 

如何CA ñ我實現另一個功能,減去兩個字段?

+0

什麼是'mascaraMoeda'?你必須顯示該代碼,否則我們沒有任何信息。 – thatidiotguy

+0

因此得到值並減去它。 – epascarello

+0

@thatidiotguy mascaraMoenda是我的coinMask,它的功能,返回面具00.000,00的領域 – Oliveira

回答

4
$('#field1, #field2').on('keypress keydown keyup', function (event) { 
    var difference = parseFloat($('#field1').val()) - parseFloat($('#field2').val()); 
    // do something with the difference 
}); 

這將結合keypress,​​,keyup到您的每一個的輸入和從。減去所述第一值的第二個的值。

+1

您應該使用parseFloat()將每個值轉換爲數字。這裏沒關係,因爲減法會自動強制轉換,但比抱歉更安全。 –

0

您應該添加一個字段,你可以把你的結果:

<input type="text" id="result" /> 

然後在您的mascaraMoeda方法Add:

difference = parseFloat(document.getElementById("field1").value.replace(".","").replace(",",".")) - parseFloat(document.getElementById("field1").value.replace(".","").replace(",",".")); 
document.getElementById("result").value = difference; 
+0

我得到NaN的所有解決方案 – Oliveira

+0

你可以把上面的差異= ...警報()?請添加alert(this.value)並在此處發佈結果... – Osd

+0

我做到了!我不明白,爲什麼?轉換有問題嗎? – Oliveira