此代码位于jquery移动表单中。它将数字相加并在禁用的文本框中显示总数。当总数为100时,启用继续(提交)按钮。
当没有值时,会话var代码正确地输入零。
问题:
有时人们会在零之后键入一个数字(例如:0100)
看起来这样,加上删除数字会导致数字不能正确加起来。
我可以使用你的协助:
在计算总计时消除随机的bugginess,特别是在清除值时。我应该使用parseInt吗?
提前致谢。
<script>
$(document).ready(function() {
<?php
if (!isset($_SESSION['num1'])) {
echo "$('#num1').val(0);";
}
if (!isset($_SESSION['num2'])) {
echo "$('#num2').val(0);";
}
if (!isset($_SESSION['num3'])) {
echo "$('#num3').val(0);";
}
if (!isset($_SESSION['num4'])) {
echo "$('#num4').val(0);";
}
?>
//to handle previously entered values if back button used: <br/>
var tot = ($('#num1').val() - 0) +
($('#num2').val() - 0) +
($('#num3').val() -0) +
($('#num4').val() - 0);
$('#total').val(tot);
if (tot==100) {
$('#continue').removeAttr('disabled');
} else {
$('#continue').attr("disabled","disabled");
}
//to handle numbers on update.
$('input[name^="int"]').keypress(function() {
var tot = ($('#num1').val() - 0) +
($('#num2').val() - 0) +
($('#num3').val() -0) +
($('#num4').val() - 0);
$('#total').val(tot);
if (tot==100) {
$('#continue').removeAttr("disabled");
} else {
$('#continue').attr("disabled","disabled");
}
});
答案 0 :(得分:1)
尝试使用parseInt($('#num').val(),10)
代替$('#num').val() - 0
将字符串转换为数字
答案 1 :(得分:0)
您应该使用parseInt
代替。但是,请确保正确使用它:
parseInt("09",10); // equals 9
parseInt("09); // equals zero, because it thinks it's an octal number
答案 2 :(得分:-1)
仅使用一行代码从输入中获取int:
var n=parseInt($('#num').val(),10)||0;