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

さて、あなたには2つの問題があります。まず、Javascript で先頭0に . 8 または 9 が含まれていない場合、Javascript は 8 進数として解釈します。例えば:

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

第二に、先行ゼロを数値にエンコードすることはできません。また、これらの数値は十分に長いため、1 桁でも追加すると Javascript の数値範囲をオーバーフローする危険があります。基本的に、これらの数値が主に識別用であり、数学用ではない場合は、これらの数値を文字列として扱う必要があります。

esn1 = "012345678998875";
于 2013-02-24T07:09:29.093 に答える