2013-08-27 31 views
0

我在我的jsp中使用以下代碼。訪問在字符串連接期間有逗號的變量

<%= scriptletVar%>返回一個像12,000的字符串。當值被硬編碼像12,000時,它顯示它很好。但是,當這個值來作爲scriptlet變量。它只會打印12.將創建一個單獨的<tr>標記,其值爲000.

我發現很難找到硬編碼時它是如何工作的,但是在動態獲取時很難找到它。價值中有逗號有問題,但我無法解決問題。

<script type="text/javascript"> 


     $("#table tr:eq(1)").after("<tr><td class='row-highlight txt-ctr'> <strong><span></span></strong></td>"+ 
       "<td class='row-highlight txt-right'><strong></strong></td><td class='row-highlight txt-right'><strong>" +<%= scriptletVar%> +"</strong></td>" + 

//Rest of code 

回答

1

由於JavaScript是在客戶端執行,JSP是在服務器端執行,JSP的執行之前的JavaScript和通過<%= scriptletVar%>只是12,000。不像您期望的那樣字符串,但作爲Number, Number,因爲您正在串接字符串,所以單個數字將被解析爲字符串,但,將被解釋爲函數after的兩個獨立參數。所以你必須確保JavaScript知道你想把12,000作爲字符串處理。您可以通過用雙引號"或僅將字符串不連接在一起,而是將<%= scriptletVar%>直接寫入靜態字符串值來執行此操作。

所以請嘗試以下操作:

$("#table tr:eq(1)").after("<tr><td class='row-highlight txt-ctr'> <strong><span></span></strong></td>"+ 
    "<td class='row-highlight txt-right'><strong></strong></td><td class='row-highlight txt-right'><strong><%= scriptletVar%></strong></td>" + 
0

怎麼樣把<%= scriptletVar %>成變量,不是把它變成了jQuery功能

<script type="text/javascript"> 

var someNumber = "<%= scriptletVar%>"; 
     $("#table tr:eq(1)").after("<tr><td class='row-highlight txt-ctr'> <strong><span></span></strong></td>"+ 
       "<td class='row-highlight txt-right'><strong></strong></td><td class='row-highlight txt-right'><strong>" + someNumber +"</strong></td>" + 

//Rest of code 
+0

嘗試that.Then變量就會像無功someNumber = 12,000.So這將是錯誤的。 – sandy

+0

我錯過了逗號。 –

+0

逗號是問題的主要來源。 :) – sandy