1
<a href='javascript:void(0)' onclick='show($ID);'>ID</a>

我的 $ID 是 0000001000。

我的 show() 函数得到的是 512 而不是 0000001000

我尝试使用 String() 和 .toString() 将 $ID 转换为字符串,但我仍然执行 alert() 它返回 512。

我读了一些关于八进制模式的东西。我该如何预防或纠正这种情况?

我希望我的函数读取 0000001000

4

3 回答 3

3

您应该将其作为字符串传递:

echo "<a href='javascript:void(0)' onclick='show(\"" . $ID . "\");'>ID</a>";

否则,它会自动从八进制转换为十进制表示法oct(1000) === dec(512)

于 2013-01-15T16:43:51.403 回答
1

以 0 开头的数字在 Javascript 中被视为八进制(不是二进制!)。八进制的 1000 == 十进制的 512。您应该将值作为字符串处理以避免此类问题。

于 2013-01-15T16:46:03.233 回答
1

当您将它传递给您的 show 函数时,它似乎0000001000被解释为八进制(归功于@Oscar Lopaz)(512)。尝试将其作为字符串传递:

<a href="javascript:void(0)" onclick="show('" + $ID + "');">ID</a>
于 2013-01-15T16:44:47.567 回答