<a href='javascript:void(0)' onclick='show($ID);'>ID</a>
我的 $ID 是 0000001000。
我的 show() 函数得到的是 512 而不是 0000001000
我尝试使用 String() 和 .toString() 将 $ID 转换为字符串,但我仍然执行 alert() 它返回 512。
我读了一些关于八进制模式的东西。我该如何预防或纠正这种情况?
我希望我的函数读取 0000001000
<a href='javascript:void(0)' onclick='show($ID);'>ID</a>
我的 $ID 是 0000001000。
我的 show() 函数得到的是 512 而不是 0000001000
我尝试使用 String() 和 .toString() 将 $ID 转换为字符串,但我仍然执行 alert() 它返回 512。
我读了一些关于八进制模式的东西。我该如何预防或纠正这种情况?
我希望我的函数读取 0000001000
您应该将其作为字符串传递:
echo "<a href='javascript:void(0)' onclick='show(\"" . $ID . "\");'>ID</a>";
否则,它会自动从八进制转换为十进制表示法oct(1000) === dec(512)
。
以 0 开头的数字在 Javascript 中被视为八进制(不是二进制!)。八进制的 1000 == 十进制的 512。您应该将值作为字符串处理以避免此类问题。
当您将它传递给您的 show 函数时,它似乎0000001000
被解释为八进制(归功于@Oscar Lopaz)(512)。尝试将其作为字符串传递:
<a href="javascript:void(0)" onclick="show('" + $ID + "');">ID</a>