从0开始的变量被javascript删除

时间:2013-02-24 07:00:29

标签: php javascript mysql

我有一个带有输入字段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            
}

我的问题是,当ESN从0开始时,脚本会丢弃零,因此它不会更新我的数据库。因此,例如esn 012345678998875变为12345678998875。只要ESN不以0开头,我的代码就可以了。请指教。谢谢。

2 个答案:

答案 0 :(得分:3)

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

esn1 = 012345678998875
esn2 = 321446894441146

对此:

esn1 = "012345678998875";
esn2 = "321446894441146";

答案 1 :(得分:2)

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

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

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

esn1 = "012345678998875";