diff --git a/app/assets/javascripts/admin/communication/menu_items.js b/app/assets/javascripts/admin/communication/menu_items.js
index 25a915265c6d4d82fe2789ca19d3d06a781b1c15..59ab729c67ccddbf2af10f34aa4f7ed75bf99318 100644
--- a/app/assets/javascripts/admin/communication/menu_items.js
+++ b/app/assets/javascripts/admin/communication/menu_items.js
@@ -10,7 +10,6 @@ window.osuny.communication.menuItems = {
         this.switchUrl = this.kindInput.dataset.url;
 
         this.kindInput.addEventListener('change', this.onKindChange.bind(this));
-        this.onKindChange();
     },
 
     onKindChange: function () {
diff --git a/app/models/communication/website/menu/item.rb b/app/models/communication/website/menu/item.rb
index 28b613c9254d3b0c617ebd333ff4ca3fa382e2fc..9cb253e4101ac3753b1d5a00c0160d8e670bfb9f 100644
--- a/app/models/communication/website/menu/item.rb
+++ b/app/models/communication/website/menu/item.rb
@@ -80,6 +80,10 @@ class Communication::Website::Menu::Item < ApplicationRecord
     }
   end
 
+  def has_about?
+    kind_page? || kind_program? || kind_news_category? || kind_news_article
+  end
+
   protected
 
   def set_position
diff --git a/app/views/admin/communication/website/menu/items/_form.html.erb b/app/views/admin/communication/website/menu/items/_form.html.erb
index c5ae967ca872d33ea276eb1046c66b9cb680681d..2beebc68f03e41eabb75da8bfe1defbdf6b19527 100644
--- a/app/views/admin/communication/website/menu/items/_form.html.erb
+++ b/app/views/admin/communication/website/menu/items/_form.html.erb
@@ -15,12 +15,24 @@
                         class: 'js-kind-input',
                         data: { url: kind_switch_admin_communication_website_menu_items_path }
                        } %>
-          <div class="d-none js-url-field">
+          <div class="<%= 'd-none' unless item.url? %> js-url-field">
             <%= f.input :url, as: :string %>
           </div>
-          <div class="d-none js-about-fields">
-            <%= f.input :about_type, as: :hidden, input_html: { class: 'js-about-id' } %>
-            <%= f.association :about, collection: @website.list_of_pages, label_method: ->(p) { sanitize p[:label] }, value_method: ->(p) { p[:id] }, input_html: { class: 'js-about-id' } %>
+          <div class="<%= 'd-none' unless item.has_about? %> js-about-fields">
+            <%
+              if item.has_about?
+                if item.kind_page?
+                  about_collection = @website.list_of_pages
+                elsif item.kind_program?
+                elsif item.kind_news_category?
+                elsif item.kind_news_article?
+                end
+              else
+                about_collection = nil
+              end
+            %>
+            <%= f.input :about_type, as: :hidden, input_html: { class: 'js-about-type' } %>
+            <%= f.association :about, collection: about_collection, label_method: ->(p) { sanitize p[:label] }, value_method: ->(p) { p[:id] }, input_html: { class: 'js-about-id' } %>
           </div>
         </div>
       </div>
diff --git a/app/views/admin/communication/website/menu/items/kind_switch.js.erb b/app/views/admin/communication/website/menu/items/kind_switch.js.erb
index cbdb12e62bd2c407a28575026cc4cb5e1c2f547c..71103f36439b36b7d4b65d0f6e1d3ba8699bc4a4 100644
--- a/app/views/admin/communication/website/menu/items/kind_switch.js.erb
+++ b/app/views/admin/communication/website/menu/items/kind_switch.js.erb
@@ -1,6 +1,7 @@
-function displayAbout(options) {
+function displayAbout(kind, options) {
     $('.js-url-field').addClass('d-none');
     $('.js-about-fields').removeClass('d-none');
+    $('.js-about-type').val(kind);
     $('.js-about-id').html(options);
 }
 
@@ -18,7 +19,7 @@ function hideAbout() {
             options << "<option value=\"#{page[:id]}\">#{page[:label]}</option>"
         end
     %>
-    displayAbout("<%= j(raw(options.join(''))) %>");
+    displayAbout('Communication::Website::Page', "<%= j(raw(options.join(''))) %>");
 <% elsif @kind == 'program' %>
     displayAbout();
 <% elsif @kind == 'news_category' %>