2017-12-02 10 views
1

私は以下のようにDatatableセルにHTMLコードを動的に出力するJSコードをいくつか持っています。js長いパラメータのインラインを渡す方法は?

$('td:eq(7)', nRow).html("<a onclick='showOrder("+orderId.toString()+");' style='cursor:hand;color:blue'>" +orderNo + "</a>"); 

function showOrder(id) { 
     var Window = window.open(orderURL+"/order?orderId=" + id, '_blank'); 
} 

showOrderは、Datatableセルがクリックされたときに呼び出す関数です。ここでの問題はorderIdがJS long型の範囲を超える6494933473411334145のようなものです。実際に開いているが間違っIdのあるshowOrderウィンドウ以下の通りのように私はこの問題を解決するために多くの方法を試してみましたが、唯一の方法は働い6494933473411330000.がある:

$('td:eq(7)', nRow).html("<a href='"+orderURL+"/order/toTag?orderId=" + orderId +"' target='_blank' style='cursor:hand;color:blue'>" +orderNo + "</a>"); 

代わりの関数を呼び出すには、HTML内のIDをエンコード問題を解決することができます。誰もがこの問題を関数呼び出しの方法で解決する方法を知っていますか?

答えて

0

私の同僚は、次のように単純に解決策を見つける:

var id = "'"+orderId+"'" 
showOrder(id) { 
    var Window = window.open(orderURL+"/order?orderId=" + id, '_blank'); 
} 

注文IDは、このケースでは動作しません長いとのtoStringとして扱われるようです。使用する前にLongをStringに変換するだけで問題を回避できます。