Ruby on Rails | Screencasts | Download | Documentation | Weblog | Community | Source

Ticket #10118: 0004-Do-not-serialize-input-elements-with-file-type.-Clos.patch

File 0004-Do-not-serialize-input-elements-with-file-type.-Clos.patch, 1.8 kB (added by kangax, 3 months ago)
  • a/src/form.js

    old new  
    1212    var data = elements.inject({ }, function(result, element) { 
    1313      if (!element.disabled && element.name) { 
    1414        key = element.name; value = $(element).getValue(); 
    15         if (value != null && (element.type != 'submit' || (!submitted && 
     15        if (value != null && element.type != 'file' && (element.type != 'submit' || (!submitted && 
    1616            submit !== false && (!submit || key == submit) && (submitted = true)))) {  
    1717          if (key in result) { 
    1818            // a key is already present; construct an array of values 
  • a/test/unit/form.html

    old new  
    120120      <input type="submit" id="ffe_ti2_submit" tabindex="1" /> 
    121121    </form> 
    122122     
     123    <form id="form_with_file_input"> 
     124      <input type="file" name="file_name" value="foo" /> 
     125    </form> 
     126     
    123127  </div> 
    124128 
    125129  <!-- Tests follow --> 
     
    399403                      $('form').serialize({ submit: false })); 
    400404      this.assertHashEqual({ val1:4, action:'blah' }, 
    401405                      $('form').serialize({ submit: 'inexistent' })); 
    402                        
     406       
     407      // file input should not be serialized 
     408      this.assertEqual('', $('form_with_file_input').serialize());             
    403409    }, 
    404410     
    405411    testFormMethodsOnExtendedElements: function() {