我正在尝试通过 Javascript 方法将字符串“0541210022-0”传递到弹出窗口。当我在弹出窗口中查看该数字时,它显示为 11575826。有人可以帮助我确定该值为何发生变化吗?我将添加代码和屏幕截图。谢谢!
弹出窗口的代码。首先是 HTML/PHP 按钮,然后是 javascript。
HTML/PHP
<?php
$Number = $row['N1']."-".$row['N2'];
?>
<button onClick="openPopup(<?php echo $idt;?>, <?php echo $Number;?>);"><?php echo $idt;?></button>
Javascript
function openPopup(id, Number) {
alert(Number);
document.getElementById('draggable').style.display = 'block';
if ( true ) console.log( "This element is draggable!" );
if ( false ) console.log( "This element failed at being draggable!" );
document.getElementById('popupID').innerHTML = id;
document.getElementById('popupNumber').innerHTML = Number;
}
此时编号为 = 11575826。接下来我将向您展示屏幕截图,以帮助您直观地看到我所看到的内容。
正在输出到表格单元格的数字。如您所见,它是 054121022-0。
接下来我将显示 java 警报中显示的数字,它应该是相同的数字,但它以某种方式发生了变化。正如您所看到的,这个数字与应有的数字有很大不同。
谢谢您的帮助!我很困惑为什么会发生这种情况。我担心该值会以某种方式被 chop ,但我不知道如何将该值作为字符串传递给 Javascript 函数。
最佳答案
11575826(十进制)与 054121002(八进制)相同,Javascript(与大多数 C 语言一样)将带有前导零的数字视为八进制。不确定为什么最后 2 个被 chop ,或者这是否是一个拼写错误,但您正在调用
openPopup(WhateverIdtIs, 054121002-0);
与
相同openPopup(WhateverIdtIs, 11575826-0);
您需要引用该字符串才能使其保持为字符串:
<button onClick="openPopup('<?php echo $idt;?>', '<?php echo $Number;?>');"><?php echo $idt;?></button>
关于javascript - 向 Javascript 函数传递错误值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28224902/