javascript - 向 Javascript 函数传递错误值

标签 javascript php pass-by-reference truncation

我正在尝试通过 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。

enter image description here

接下来我将显示 java 警报中显示的数字,它应该是相同的数字,但它以某种方式发生了变化。正如您所看到的,这个数字与应有的数字有很大不同。

enter image description here

谢谢您的帮助!我很困惑为什么会发生这种情况。我担心该值会以某种方式被 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/

相关文章:

javascript - 在 Javascript 中解析时将 PHP 转换为 JSON 数组

c++ - 通过引用 char 2 维调用字符串不起作用

javascript - 如何在条件中使用 style.display 值

javascript - 如果选中单选框,则使用 javascript 进行重定向

java - ajax javascript 复选框更改不起作用

php - CakePHP 不保存到数据库

c++ - 通过 const reference 或 by value 传递 int,有什么区别吗?

c++ - 是否可以将 vector 的一部分作为 vector 发送给函数?

javascript - Div 下拉菜单覆盖其他内容

javascript - 加载覆盖图像时防止显示列表项