无法使用jQuery提交表单

时间:2011-11-06 09:09:25

标签: forms jquery form-submit

我有这个表格

<form id="frm_main" action="#" method=POST>
 <input type=hidden name="MAX_FILE_SIZE" value="100000" />
 <input id='file' name="file" type="file">
 &nbsp;&nbsp;
 <input type=submit id='btn_import' name='btn_import' value='Importar' />
 <input type=hidden id="uploadResponseType" name="mimetype" value="html" />
 <input type=hidden id="func" name="func" value="upload" />
 <div id="uploadOutput"></div>
 </form>

所以,当我尝试发布上传文件时问题就出现了。如果我使用ajaxSubmit函数,表单将被提交,但它不会返回页面;如果我使用$ .ajax函数,它不会发送uploeade文件。问题是我需要返回同一页面,因为我要对文件内容做一些事情。我已经尝试了很多组合,但我仍然有相同的结果。处理提交的代码看起来像这样

$( '#frm_main' ).bind( 'submit', function( e ) {
// e.preventDefault(); // <-- important
$( this ).ajaxSubmit({
target: '#uploadOutput', // <-- div container
type: "POST", // <-- override, just in case.
url: "/process.php", // <-- server-side handler
data: "func=upload", // <-- parameter for post purpouse
beforeSubmit: function(a,f,o) {
o.dataType = $('#uploadResponseType').val();    // should be 'html'.
$('#uploadOutput').html('Submitting...');
},
success: function(data) {
var $out = $('#uploadOutput');
$out.html('Form success handler received: <strong>' + typeof data + '</strong>');
$out.append('<div><pre>'+ data +'</pre></div>');
}
});
return false;
});

我已经尝试了下一个代码

$('#frm_main').bind('submit', function() {
var formdata = $(this).serialize();
$.ajax({
    url:    '/process.php',
    data:   formdata,
    dataType: 'html', 
    success: function(data){
        var $out = $('#uploadOutput');
        $out.html('Form success handler received: <strong>' + typeof data + '</strong>');
    }
});
return false;
});

process.php代码看起来像这样     

switch($_POST['func']) {
  case 'upload' : 
    $output = upload_file ();
    echo $output;
   break;
 default : 
   echo "<BR/>INVALID";
   break;
}
?>

有人可以帮我解决这个问题吗?任何帮助将不胜感激

1 个答案:

答案 0 :(得分:0)

您是否需要使用表单enctype =“multipart / form-data”来上传文件?