diff --git a/aleksis/apps/alsijil/frontend/components/coursebook/absences/ManageStudentsDialog.vue b/aleksis/apps/alsijil/frontend/components/coursebook/absences/ManageStudentsDialog.vue
index aa3bdb39179afb4a43e2f3df99fdc70330932b41..e16cc520845447c9b36b1ff9c0fbeb78dd80c92f 100644
--- a/aleksis/apps/alsijil/frontend/components/coursebook/absences/ManageStudentsDialog.vue
+++ b/aleksis/apps/alsijil/frontend/components/coursebook/absences/ManageStudentsDialog.vue
@@ -27,6 +27,7 @@ export default {
     return {
       dialog: false,
       search: "",
+      loadSelected: false,
       selected: [],
       isExpanded: false,
     };
@@ -96,6 +97,16 @@ export default {
         // },
       );
     },
+    handleMultipleAction(absenceReasonId) {
+      this.loadSelected = true;
+      this.sendToServer(this.selected, "absenceReason", absenceReasonId);
+      this.$once("save", this.resetMultipleAction);
+    },
+    resetMultipleAction() {
+      this.loadSelected = false;
+      this.$set(this.selected, []);
+      this.$refs.iterator.selected = [];
+    },
   },
 };
 </script>
@@ -141,6 +152,7 @@ export default {
     </template>
     <template #content>
       <slide-iterator
+        ref="iterator"
         v-model="selected"
         :items="items"
         :search="search"
@@ -148,7 +160,9 @@ export default {
           (item) => 'documentation-' + documentation.id + '-student-' + item.id
         "
         :is-expanded.sync="isExpanded"
-        :loading="loadingIndicator"
+        :loading="loadingIndicator || loadSelected"
+        :load-only-selected="loadSelected"
+        :disabled="loading"
       >
         <template #listItemContent="{ item }">
           <v-list-item-title>