输入中的乘法用逗号和特殊字符表示

时间:2018-03-27 02:58:35

标签: javascript jquery function input var

目标是:如果我写入第一个输入10,000(应该是10000)并将其乘以0.005然后必须是50,但现在是0,50 - 使用乘法时只需删除“,”。

另外我想在函数显示最终值时添加“$”符号。 ($ 10000)

<input type="text" id="results-input-1"></p>
<input type="text" id="results-input-2" value="0.005"/>

<span id="results-cal-final">$</span>

<script>
var multiplyShares = function() {
   var val1 = parseFloat($('#results-input-1').val())
   var val2 = parseFloat($('#results-input-2').val())

   val3 = val1 * val2 || "Invalid"
   $("#results-cal-final").html(val3)
}
$("#results-input-1").keyup(function() { multiplyShares(); });
$("#results-input-2").keyup(function() { multiplyShares(); });
</script>

2 个答案:

答案 0 :(得分:1)

您可以使用,删除$('#results-input-1').val().replace(/,/g, "")

添加$的正确位置位于.html()。您也可以调用.toFixed(2)在显示的值中添加小数位。

&#13;
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

Type 10,000 below:<br>

<input type="text" id="results-input-1"></p>
<input type="text" id="results-input-2" value="0.005"/>

<span id="results-cal-final">$</span>

<script>
var multiplyShares = function() {
   var val1 = parseFloat($('#results-input-1').val().replace(/,/g, ""))
   var val2 = parseFloat($('#results-input-2').val())

   var val3 = val1 * val2;
   if (val3) {
     // add two decimals if needed, prepend $
     val3 = "$" + /^\d+(\.\d{1,2})?$/.test(val3+'') ? val3.toFixed(2) : val3);
   } else {
     val3 = "Invalid";
   }

   $("#results-cal-final").html(val3)
}
$("#results-input-1").keyup(function() { multiplyShares(); });
$("#results-input-2").keyup(function() { multiplyShares(); });
</script>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

对于解决方案的粗略想法,您可以执行以下操作。 将所有,替换为空格,并按正常方式相乘。

&#13;
&#13;
    
<input type="text" id="results-input-1"></p>
<input type="text" id="results-input-2" value="0.005"/>

<span id="results-cal-final"></span>
<script
  src="https://code.jquery.com/jquery-3.3.1.slim.min.js"
  integrity="sha256-3edrmyuQ0w65f8gfBsqowzjJe2iM6n0nKciPUp8y+7E="
  crossorigin="anonymous"></script>
<script>
var multiplyShares = function() {
   var val1 = parseFloat($('#results-input-1').val().replace(',',''))
   var val2 = parseFloat($('#results-input-2').val())

   val3 = val1 * val2 || "Invalid"
   $("#results-cal-final").html(val3 !== 'Invlid' ? ('$' + val3) : 'Invlid')
}
$("#results-input-1").keyup(function() { multiplyShares(); });
$("#results-input-2").keyup(function() { multiplyShares(); });
</script>
&#13;
&#13;
&#13;