diff --git a/feedback.admin.inc b/feedback.admin.inc
index de6a111..b625dfa 100644
--- a/feedback.admin.inc
+++ b/feedback.admin.inc
@@ -75,6 +75,7 @@ function feedback_admin_view_form($form, &$form_state) {
  * Output a sortable table containing all feedback entries.
  */
 function theme_feedback_admin_view_form($variables) {
+  drupal_add_js(drupal_get_path('module', 'feedback') . '/feedback.admin.js');
   $form = $variables['form'];
   $output = '';
   foreach (element_children($form['feedback-messages']) as $status) {
diff --git a/feedback.admin.js b/feedback.admin.js
new file mode 100644
index 0000000..bfcd736
--- /dev/null
+++ b/feedback.admin.js
@@ -0,0 +1,16 @@
+(function ($) {
+
+/**
+ * Attach auto-submit to admin view form.
+ */
+Drupal.behaviors.feedbackAdminForm = {
+  attach: function (context) {
+    $('#feedback-admin-view-form', context).once('feedback', function () {
+      $(this).find('fieldset.feedback-messages :input[type="checkbox"]').click(function () {
+        this.form.submit();
+      });
+    });
+  }
+};
+
+})(jQuery);
diff --git a/feedback.module b/feedback.module
index 9e0f5e9..0d29889 100644
--- a/feedback.module
+++ b/feedback.module
@@ -142,17 +142,6 @@ function feedback_menu() {
 }
 
 /**
- * Implements hook_init().
- */
-function feedback_init() {
-  if (user_access('access feedback form')) {
-    $path = drupal_get_path('module', 'feedback');
-    drupal_add_css($path . '/feedback.css');
-    drupal_add_js($path . '/feedback.js');
-  }
-}
-
-/**
  * Implements hook_page_build().
  */
 function feedback_page_build(&$page) {
@@ -162,6 +151,9 @@ function feedback_page_build(&$page) {
       '#title' => t('Feedback'),
       '#content' => drupal_get_form('feedback_form'),
     );
+    $path = drupal_get_path('module', 'feedback');
+    drupal_add_css($path . '/feedback.css');
+    drupal_add_js($path . '/feedback.js');
   }
 }
 
