javascript - 带有前导零的数字在 JavaScript 中被更改

标签 javascript php html

我正在使用 print 语句从 php 调用一个 javascript 函数来打印出 html 代码,我正在传递一个整数。但是,在 php 中传递的值与 javascript 函数接收到的数字不匹配,我不知道为什么。

这里是调用javascript函数的php:

$upc = $items[$i]->GetUPC();
print "upc: " . $upc . "<br/>";

$delete = "<a href='#' onclick='removeFromCart(". $upc .")' ><img src='".$redx."' height='17' width='17' /></a>";

打印语句打印出值:0011110416605

在页面上,使用查看源代码,这里是标签:

<a href='#' onclick='removeFromCart(0011110416605)' >

这是被调用的 javascript 函数:

function removeFromCart(itemID){
    var option = document.getElementById("select_cart");
    var selected = option.options[option.selectedIndex].value;

    alert(itemID);

    loadCart(itemID,selected,"","remove");
}

警告框正在打印数字:1226972549

如果它删除了前导 0,我能理解,但这个数字是完全不同的。有谁知道这是为什么?

最佳答案

JavaScript 认为它是一个八进制值(因为前导零和缺少大于 7 的数字)。八进制 0011110416605 的十进制值为 1226972549。示例:

> var value = 010; //10 in octal
> console.log(value);
> 8  //is 8 in decimal

改用字符串:

removeFromCart("0011110416605")

关于javascript - 带有前导零的数字在 JavaScript 中被更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20128272/

相关文章:

php - MySQL查询错误

php - 如何在 JavaScript 中操作 PHP 数组?

javascript - jQuery:在模糊时隐藏上下文菜单

javascript - map API 自动完成建议不会替换输入值

javascript - 从另一个数字生成一个随机数

javascript - 使用数字序列循环遍历 json 的不同属性

javascript - 如何使用 Javascript 更改悬停样式?

php - 在 Mysql 中对行进行分组和排名

javascript - 观察到在背景中最大化图像滚动?

javascript - 通过 JavaScript 将表格插入 div