title: updating to addEventListerner may cause return value of function not to propagate?
body: <p>I recently upgraded from classical registration using</p>
  
  <pre><code>element.property = function
  </code></pre>
  
  <p>to advanced registration using</p>
  
  <pre><code>element.addEventListener( "property", function,  bool );
  </code></pre>
  
  <p>In the function I had returned a false to to disable form submission when the user presses the enter key like this:</p>
  
  <pre><code>tweet_input.addEventListener( "keypress", function( event )
  { 
      if( event.keyCode === 13 )
      {
         new ModelTweet().invoke(); 
         return false;
      }
  }, false );
  </code></pre>
  
  <p>However, this no longer works, and every time the user hit the enter key, the form is submitted.</p>
  
  <p>The HTML looks like this:</p>
  
  <pre><code>  &lt;form id="tweet" method="post" name="tweet"&gt;
      &lt;div id="tweet_input_wrap"&gt;
        &lt;input id="tweet_input" name="tweet" type="text" maxlength="40"&gt;
          &lt;p id="tweet_label"&gt;Comment
          &lt;/p&gt;
        &lt;/input&gt;
      &lt;/div&gt;
      &lt;p id="tweet_button" href="javascript:void(0)"&gt;Share
      &lt;/p&gt;
      &lt;div id="tweet_response" class="response"&gt;
      &lt;/div&gt;
      &lt;div id="tweet_fill"&gt;
        &lt;!--TWEET FILL 
        --&gt;
      &lt;/div&gt;
    &lt;/form&gt;
  </code></pre>
  
  <p>I use this method on 3 other forms and it works fine.</p>
  
  <p>Updating to advanced registration was the last major change I made but since the other 3 forms work well...I don't understand what the issue is.</p>
  
  <p>I don't see a difference when I compare the code to the other 3 forms which work.</p>
  
  <p>I also recently updated the Model for Tweet, but is is obvious the form is submitted twice, once when I do it by grabbing the Enter Key, and once when it is sumbitted internally by an "enter key post".</p>
  
  <p>Odd.</p>
  
  <pre><code>/**
   *ModelTweet
   */
  
  var ModelTweet = ( function() 
  {
      var ModelTweetI = function ( )
      {
          this.form_elements = document.getElementById( 'tweet' ).elements, 
          this.response_element = document.getElementById( 'tweet_response' );
          this.fill_element = document.getElementById( 'tweet_fill' );
  
          this.text_object = new TextValidator( this.form_elements );
          this.message_object = new Message( this.response_element );
          this.effects_object= new Effects( this.response_element );
  
          this.ajax_object = new AjaxRequest();
          this.shared_object = new Shared();
  
          this.TIME = this.shared_object.get( 'TIME' );
          this.load_on = this.shared_object.get( 'load_on' );
      };
      ModelTweetI.prototype.invoke = function( ) 
      {
          if( this.load_on === 1 )
          {
              if( !this.text_object.checkEmpty() ) 
              {
                  this.message_object.display( 'empty' );
                  this.effects_object.fade( 'down', this.TIME );
                  return false;
              }
              if( !this.text_object.checkPattern( 'tweet' ) ) 
              {
                  this.message_object.display( 'tweet' );
                  this.effects_object.fade( 'down', this.TIME );
                  return false;
              }
          }
          var response_element = this.response_element;
          var fill_element = this.fill_element;
          this.ajax_object.invoke( this.ajax_object.serializeArray( this.form_elements ) + '&amp;ajax_type=tweet_control', function( server_response_text ) { new AjaxResponse( server_response_text, 'tweet', response_element, fill_element ); } );
          var tweet_input = document.getElementById( 'tweet_input' );
              tweet_input.value='';
              tweet_input.blur();
          }
      };
      return ModelTweetI;
  } ) ();
  </code></pre>