用逗号和特殊字符输入乘法
Multiplication in input with comma and special character
目标是:如果我首先输入 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>
您可以执行以下操作以获得解决方案的粗略概念。
将所有 ,
替换为空的 space 并正常乘法。
<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>
您可以使用 $('#results-input-1').val().replace(/,/g, "")
删除 ,
。
添加 $
的正确位置是 .html()
。您也可以调用.toFixed(2)
在显示值中添加小数位。
<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>
目标是:如果我首先输入 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>
您可以执行以下操作以获得解决方案的粗略概念。
将所有 ,
替换为空的 space 并正常乘法。
<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>
您可以使用 $('#results-input-1').val().replace(/,/g, "")
删除 ,
。
添加 $
的正确位置是 .html()
。您也可以调用.toFixed(2)
在显示值中添加小数位。
<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>