1

我有一个带有一个名为 ESN 的输入字段的表单,用户输入一个通常以 0 开头的数字,然后是一堆随机数(基本上就像一个序列号)。在这个 esn 之后,我有一个调用 javascript 代码的复选框

esn1 = 012345678998875
esn2 = 321446894441146

这是我的脚本:

//change picked up to yes
function applyPickedUp(row_id){  
var ESN = row_id; //phoneID 
$.ajax({
    url: "savepickedup.php",  
    type: "GET",
      //pass data like this 
    data: {ESN:ESN},    
    cache: false,
    success: function(data) {  
    if (data=="1")
    $('#message').html("<div class='alert alert-success'>Record updated! Refresh to remove ESN from report.</div>" ); 
    } 

});  
//start the ajax            
}

我的问题是,对于以 0 开头的 ESN,脚本会删除零,因此它不会更新我的数据库。因此,例如 esn 012345678998875 改为 12345678998875 。只要 ESN 不以 0 开头,我的代码就可以正常工作。请指教。谢谢你。

4

2 回答 2

3

尝试在 javascript 字符串中创建变量。改变这个:

esn1 = 012345678998875
esn2 = 321446894441146

对此:

esn1 = "012345678998875";
esn2 = "321446894441146";
于 2013-02-24T07:05:20.030 回答
2

嗯,你有两个问题。首先,如果您在 Javascript 中声明一个以前导 开头的数字变量0,您可能会编写一个八进制数。如果它不包含任何 8 或 9,Javascript 会将其解释为八进制。例如:

num = 012345678998875; // num is 12345678998875
num = 012345677777755; // num is 718048067565 (!)

其次,无论如何您都无法将前导零编码为数字,而且这些数字足够长,如果您再添加一个数字,您将面临溢出 Javascript 数字范围的危险。本质上,如果这些数字主要用于识别而不是用于数学目的,则需要将它们视为字符串。

esn1 = "012345678998875";
于 2013-02-24T07:09:29.093 回答