title: Problems with $(input).change with Internet Explorer
body: <p>I have a little piece of javascript which is meant to do some validating of a file input field. It works fine in Chrome, Safari, Opera, Firefox, but it doesn't work in Internet Explorer 9 and lower... I'm using Jquery 1.8.3, and apparently since 1.4.2 the .change property should work with IE. I've also tried $(".fileInput").live('change'...</p>
  
  <p>Can't see what's up, any advice welcomed!</p>
  
  <pre><code>jQuery(document).ready(function($){
  
      // Detect sh*tty IE
      if ($.browser.msie &amp;&amp; $.browser.version &lt;= 9) {
  
      // Bind to property change
      $(".fileInput").bind('propertychange', function() {
  
          fileChange(this);
      });
  
      } else {
  
      $(".fileInput").change(function() {
  
          fileChange(this);
      });
      }
  
    function fileChange($item) {
  
      // Get the filename
      var $fileName = $($item).val();
      var $inputId = $($item).attr('id');
      var $fakeName = $($item).val().split('\\').pop();
      var $fileSize = (($item.files[0].size)/1024)/1024;
      var $ext = $($item).val().split('.').pop().toLowerCase();
      var $acceptFiles = ['jpg', 'jpeg'];
  
      if ($.inArray($ext, $acceptFiles) == -1) {
  
          alert('For security, we can only accept jpeg images');
  
          // Reset the value of $item item
          $($item).val('');
  
          return;
      }
  
      // Make sure the file size isn't bigger than 1mb
      if ($fileSize &gt;= 1.8) {
  
          alert("The image you've chosen is too big. \n\nWe accept images up to 2mb in size");
  
          // Reset the value of $item item
          $($item).val('');
  
          return;
      }
  
      // Check that the file
      if ($fileName != '') {
  
          $fileNotification = $('&lt;li&gt;', { id: 'file_'+$inputId, class: 'fileNotification', text: $fakeName});
  
          // Append it to the list
          $('#filesList').append($fileNotification);
      }
  
      // Hide the file input
      $($item).css({display : 'none'});
  
      // Show the next field
      $($item).next().show();     
  
    };
  });
  </code></pre>