增刪改查,我們這篇文章來介紹一下如何進行刪除表單的操作,也就是我們頁面中的刪除按鈕的功能。
下邊寫的可能看起來有點亂,請仔細的一步一步完成。
刪除功能第一步,按鈕功能實現
1. html的改變
來看,我們最初,刪除按鈕是一個button的標簽
<button class="btn btn-sm btn-danger">刪除</button>
想要讓它實現刪除功能,首先要確定的是,刪除的是一個表單記錄,就是這個用戶的表單信息。那么,我們來添加一個表單的刪除功能,而且是delete請求的,參照之前的put請求:
<form th:action="@{/emp/}+${emp.id}" method="post"> <input type="hidden" name="_method" value="delete"/> <button type="submit" class="btn btn-sm btn-danger">刪除</button>
</form>
如上,我們就把刪除功能在HTML上修改好了,然后是一個control方法
2. LoginController的中刪除用戶的功能添加:
// 刪除員工 @DeleteMapping("/emp/{id}") public String deleteEmployee(@PathVariable("id") Integer id) { employeeDao.delete(id); return "redirect:/emps"; }
3. 前后端的代碼,我們寫好了,來看下效果:(圖1:刪除前。 圖2:刪除后)
是不是覺得哪里有點別扭,沒錯,右邊的按鈕從橫排變成了豎排,因為我們刪除表單的操作,是增加了一個form,使得這里變得過於厚重,每一個刪除按鈕都是一個表單的形式展現,所以,我們需要來優化一下。
HTML優化-加入js
直接來看我們要做怎樣的優化。
1. 首先,將form表單從按鈕那里拿出來:(圖1,是拿出來的 圖2,是原位置)
注意,我們提交刪除表單的時候,是點擊刪除按鈕,可form拿出去就不生效了,怎么辦?
2. 我們這里使用js的寫法,將這個功能實現:
2.1 記得將引入的樣式都用th:的形式注入;
2.2 我來說明一下,代碼修改的步驟:
2.2.1 首先,為了在js中對刪除這個按鈕做操作,我們在class中加一個屬性值,我這里起名叫:deleteBtn
class="btn btn-sm btn-danger deleteBtn">刪除</button>
然后寫出js-jQuery:
(記得引出jQuery的webJars,“.xx”表示對這個class做操作,什么操作呢?click,click一個事件function,返回一個fasle是為了取消這個按鈕的默認行為。既然取消了按鈕的行為,那么上邊按鈕的type也要刪除掉)
2.2.2 其次,js中並不認識我們th模板中的那些路徑拼接,所以我們要這樣自定義一下: th:attr("xxxx")
我們再對fom這里做一個操作,加一個id,用來識別這個標簽;
2.2.3 最后,來看這下邊的是什么意思:#引用id,然后引用自定義的操作實現一個動作,動作的value是 $(this).attr("del_uri)).submit();【這個按鈕 的 觸發這個路徑拼接 的 提交】 ,是不是這樣中文式的英文翻譯,看代碼就相對好理解了呢?
然后在頁面中點擊刪除,就可以完成了。