-1

我正在为我的网站后端开发一个发送/重新发送电子邮件按钮,目前正在尝试解决如何添加我制作的 vars 的 2 个整数。

只要整数不为0,脚本就可以正常工作,有人可以给我一些指示吗?无论变量中的 1 是否为 0,我都需要它来显示总数,在此先感谢

function sendResend() {
    var selected = Array();
    var selectedSend = $(".no:checked").length;
    var selectedResend = $(".yes:checked").length;
    var totalSendResend = parseInt(selectedSend) + parseInt(selectedSend);
        $('input:checked').each(function () {
            selected.push($(this).attr('name'));
        });
        var answer = confirm('You have selected ' + totalSendResend + ' emails. ' + selectedSend + ' New emails will be sent & ' + selectedResend + ' will be resent. Are you sure you want to continue?');
        if (answer) {
            alert(selected);
        }
    }
4

2 回答 2

2

您的代码中有错字:

var totalSendResend = parseInt(selectedSend) + parseInt(selectedSend);

将相同的值加在一起;你想要这个:

var totalSendResend = selectedSend + selectedResend;

你根本不需要parseInt()演员,但如果你这样做了,你应该总是将基数指定为第二个参数,例如parseInt('0123', 10)

于 2013-07-22T13:49:09.217 回答
-1

当您调用ParseInt(myvalue)myvalue以 0 开头时,它会返回一个 int 值,考虑到值以八进制表示。

为避免这种行为,请始终使用parseInt(value, 10);

编辑:有关 parseInt 如何工作的更多信息,没有指定基数:

  • 如果输入字符串以“0x”或“0X”开头,则基数为 16(十六进制)并解析字符串的其余部分。
  • 如果输入字符串以“0”开头,则基数为 8(八进制)或 10(十进制)。确切选择哪个基数取决于实现。ECMAScript 5 指定使用 10(十进制),但并非所有浏览器都支持这一点。由于这个原因,在使用 parseInt 时总是指定一个基数。
  • 如果输入字符串以任何其他值开头,则基数为 10(十进制)。

在这里查看更多

于 2013-07-22T13:44:23.217 回答