Make paper-menu/paper-dropdown-menu required for html form submission
<p>How do you make a paper-menu element required for form submission?  I have a custom element with several polymer elements contained within it.  The regular paper-inputs prevent form submission when they are empty, but the paper-menu does not.</p>

<p><strong>Edit:</strong><p>
I suppose it is the paper-dropdown-menu that needs to have the required attribute rather than the paper-menu.  The desired behaviour would be something like how a required Select tag inside an html form normally behaves. </p>

<pre><code>&lt;link rel="import" href="../../bower_components/polymer/polymer.html"&gt;

&lt;dom-module id="rsvp-form"&gt;
  &lt;template&gt;
    &lt;style include="shared-styles"&gt;&lt;/style&gt;
    &lt;style&gt;
      :host {
        display: block;
      }
    &lt;/style&gt;
    &lt;form is="ajax-form" id="rsvp" method='post' action='/api/rsvps'&gt;
      &lt;h2 class="page-title"&gt;RSVP&lt;/h2&gt;
      &lt;div class='layout horizontal wrap'&gt;
        &lt;paper-input label='First Name' class='flex' value='{{firstName}}' name="firstName" required&gt;&lt;/paper-input&gt;
        &lt;paper-input label='Last Name' class='flex' value='{{lastName}}' name="lastName" required&gt;&lt;/paper-input&gt;
      &lt;/div&gt;
      &lt;div class='layout horizontal flex'&gt;
        &lt;paper-dropdown-menu label="Attendance" class='flex' name="attendance" required&gt;
          &lt;paper-menu class="dropdown-content" selected='{{selectedIndex}}' required&gt;
            &lt;paper-item&gt;I would love to attend!&lt;/paper-item&gt;
            &lt;paper-item&gt;I cannot attend.&lt;/paper-item&gt;
          &lt;/paper-menu&gt;
        &lt;/paper-dropdown-menu&gt;
      &lt;/div&gt;
      &lt;paper-button id="submitButton" on-tap='submitRsvp' raised&gt;Submit&lt;/paper-button&gt;
    &lt;/form&gt;
  &lt;/template&gt;

  &lt;script&gt;
    (function() {
      'use strict';

      Polymer({
        is: 'rsvp-form',

        properties: {
          selectedIndex: {
            type: Number,
            observer: '_selectedIndexChanged'
          },
          firstName: {
            type: String,
            value: ''
          },
          lastName: {
            type: String,
            value: ''
          },
          attendance: {
            type: String,
            value: ''
          }
        },
        _selectedIndexChanged: function(newIndex) {
          if (newIndex === 0) {
            this.absent = false;
          } else if (newIndex === 1) {
            this.absent = true;
          }
          this.attending = !this.absent;
        },
        submitRsvp: function(e) {
          Polymer.dom(e).localTarget.parentElement.submit();
        }

      });

      document.addEventListener('WebComponentsReady', function() {
        var form = document.getElementById("rsvp");

        //modify existing or add new datapoints to be submitted here
        form.addEventListener('submitting', function(event) {

        });
      });

    })();
  &lt;/script&gt;

&lt;/dom-module&gt;
</code></pre>