2012-08-14 52 views
-1

我的循環中有一個varStatus,我想將它發送給js中的函數。將JSP變量輸出到JavaScript代碼段

這是我有:

onkeyup="clickableButton(this.value, ${newCommentStatus.index})" 

${newCommentStatus.index}是不確定的。我怎麼能發送這個值?

感謝INS提前

編輯

<c:forEach items="${threadviewModel.emailToShowList}" var="row" varStatus="status"> 
    <form:form modelAttribute="commentFieldModel"> 
<span class="commentInput"><form:input id="commentInput" type="text" path="commentText" size="90" value=" " onkeyup="clickableButton(this.value, ${status.index})"/></span> 
             <div><input disabled="true" type="submit" id="save-${status.index}" name="_eventId_addComment" value="Save"/></div> 
            </div> 
          </form:form> 

Javascript代碼

function clickableButton(text, id) { 
      if (text.length > 0) 
       document.getElementById("save-" + id).disabled = false; 
      else 
       document.getElementById("save-" + id).disabled = true; 
     } 
     ; 
+2

你可以張貼一些請更多代碼? – SpaceBeers 2012-08-14 14:07:50

+4

什麼是'newCommentStatus'? 'varStatus'在哪裏?什麼是來自模板引擎的'$ {}'?什麼循環?沒有「HTML變量」這樣的事情。 – 2012-08-14 14:07:51

+0

這是JSP。 「varStatus」的東西給出了循環狀態信息,比如「atStart」和「atEnd」的索引和一些標誌。它用於JSP模板引擎的「forEach」構造。 – Pointy 2012-08-14 14:08:40

回答

-1

$ {} newCommentStatus.index是不是標準的JavaScript。
我懷疑你正在使用JQuery或類似的東西:試試$ {newCommentStatus} .index
這將適用於一些假設。

+0

這不是jQuery,它是服務器端的JSP。 – Pointy 2012-08-14 14:09:51

+0

您如何期望它能夠使用JavaScript而不是? JSP將生成一個頁面,然後JavaScript將運行並處理它多次。您只能在頁面中使用JSP生成的一個值,或者您可以通過AJAX獲取JSP變量 – 2012-08-14 14:12:22

+0

我已經編輯了我的問題並提供了更多信息。謝謝 – 2012-08-14 14:12:44

3

您的<c:forEach>調用變量「status」,而不是「newCommentStatus」。

事件處理程序看起來像:

... onkeyup="clickableButton(this.value, ${status.index})" ... 

此外,您還可以清理你的JavaScript:

function clickableButton(text, id) { 
     document.getElementById("save-" + id).disabled = text.length <= 0; 
    } 
+0

這就是我所做的。 id未定義 – 2012-08-14 14:16:34

+1

@BeaGonzalezGutierrez沒有辦法可以發生,因爲索引值是一個數字。您應該通過查看瀏覽器中生成的頁面來進行調試,而不是從JSP源代碼中進行調試。 – Pointy 2012-08-14 14:18:04

+0

我正在使用谷歌Chrome分析器,這就是我得到的。我無法發佈截圖。 – 2012-08-14 14:23:15

0

嘗試的方式,而不是

onkeyup="clickableButton(this.value, '${newCommentStatus.index}')"