2016-05-27 42 views
0

我想製作一個簡單的「TODO」列表。我可以創建編輯和刪除任務,但我想簡單地「設置完成」或「設置爲TODO」功能。我希望能夠點擊「設置爲完成」od「設置爲待辦事項」按鈕,並且應該自動刷新我的task.isDone字段並將其顯示在我的TODO列表中(無需刷新頁面)。 我試圖玩ajax,但不知道如何在這裏使用它。如何使用onclick方法更改jsp中的變量

的index.jsp

<jsp:useBean id="manager" class="todo.TaskManager" scope="session"/> 
.... 


<div class="title"> todo list</div> 
     <% for (Task task : manager.getToDoList()) { %> 
     <div class ="task_item"> 
      <p class = "task_name" ><%=task.getTaskName()%></p> 
      <p class = "task_deadline"><%=task.getDeadline()%></p> 
      <p class = "task_isDone"><%=task.getIsDone()%></p> 
      <p> 
       <% String button_value = task.getIsDone() ? "TODO" : "done"; %> 
       <input type="button" value=<%=button_value%> onclick="change(this)" /> 
      </p> 
      <p> 
       <form method="post" action=<%="delete_process.jsp?task_name="+task.getTaskName()%>> 
        <input type="submit" value="Delete"/> 
       </form> 
      </p> 
      <p> 
       <form method="post" action=<%= "edit_task.jsp?task_name="+task.getTaskName()%>> 
        <input type="submit" value="Edit"> 
       </form> 
      </p> 
     </div> 
     <% }%> 
     <a href="create_task.jsp">Create Task</A> 

我改變功能:

function change(el){ 
    if (el.value === "done"){ 
     el.value = "TODO"; 
    } 
    else { 
     el.value = "done"; 
    } 
    return $.ajax({ 
      url: 'index.jsp', 
      type: 'GET', 
      cache: false, 
      data: { 
       isDone: el.value 
      } 
     });  
    } 

如何動態地更改task.isDone場,在我的index.jsp顯示呢?任何人都可以給我一些關於在這裏使用Ajax的技巧嗎?

回答

0

您不能混合和匹配客戶端和服務器端代碼。

task.getIsDone()在服務器端執行,而任何javascript/jQuery將在客戶端執行。

如果您只是想更改頁面中的字段內容,則可以使用jQuery。分配領域(DIV,跨度等)的標識和使用

$○一二三四二○三七二五五二二○○五九八七三二一○

+0

的事情是,我想在存儲我的任務,我的Java數組更改值(未來這將是一個數據庫)。該值在我的頁面中顯示爲一個字段。 [task.getIsDone()]。 所以我想這樣做: 點擊按鈕 - >改變task.isDone在我的Java數組中提交 - >在我的頁面字段中顯示新改變的數據。 – user3131037