> I am working on an ajax app that uses jquery's form plugin and it works just > fine until I add a file upload input into my form: > <input type="hidden" name="MAX_FILE_SIZE" value="2097152" /> > <input name="viscritfile" type="file" maxlength="300" /> > > If I take these input fields out, my form works fine and submits and saves > no problem. But once I added these parts to my form html, the jquery form > plugin hiccups. I don't get any sort of error. Instead, my form just > disappears without any data getting submitted. It's like jquery started the > submit process but didn't finish. > > I read something about the form plugin using an iframe for uploads but I'm > not sure I understand if I am supposed to do anything special to get the > submit to work. I'm sure I'm missing something here. > > HTML: > <div id="postcomment-75057"><div class="commentform"> > <form id="commentform-75057" name="commentform-75057" > enctype="multipart/form-data" method="post" > action="/comments/ajax_comments.php"> > <textarea rows="6" cols="55" name="post"/> > > <!-- My file input --> > <input type="hidden" value="2097152" name="MAX_FILE_SIZE"/> > <input type="file" maxlength="300" name="viscritfile"/> > > <input type="hidden" value="75057" name="r_parent"/> > <input type="hidden" value="post" name="action"/> > <input type="hidden" value="art" name="medium"/> > <input type="hidden" value="21148" name="mediumid"/> > <input type="submit" > onclick="javascript:submit_comment_form('postcomment-75057','commentform-75057')" > value="Submit"/> > </form> > </div> > </div> > > ------------------------- > jquery > > function submit_comment_form(divid,form){ > target = '#'+divid; > xmlFile = "http://www.paperdemon.com/comments/ajax_comments.php"; > form ='#'+form; > jquery_ajax_form_submit(xmlFile, target, form); > > } > > function jquery_ajax_form_submit(xmlFile, target, form){ > loadingTarget = "loading"; > var options = { > target: target, > beforeSubmit: function(formData, jqForm){ > $(target).html('<div > class="loading">Loading...</div>'); > return true; > }, > success: function(responseXML, statusText){ > var message = $('message', > responseXML).text(); > $(target).html(message); > }, > dataType: 'xml', > url: xmlFile, > type: 'post', > resetForm: true > > }; > $(form).ajaxSubmit(options); > > }
The form is not submitted or the success handler is not getting invoked? Does this happen in all browsers? Can you create a small sample page the demonstrates the problem?