我正在使用 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/