1

我正在尝试使用 jquery 上传文件,但我不想刷新页面。

我阅读了一些重复的问题,但它们并没有解决我的问题。

如果我在使用代码方面有误,请告诉我。

<script src="js/jquery-1.8.2.min.js" type="text/javascript"></script>
<script src="js/jquery.form.js" type="text/javascript"></script>
<script src="js/myajax.js" type="text/javascript"></script>

html代码:

<form id="uploadpic" action="func/uploader.php" enctype="multipart/form-data" method="post" onsubmit="sendAjax('uploadpic','#image_place'); return false;">
<label for="UserImage" class="fright">new pic</label>
<div class="file-input width-100">
    <input type="file" id="File1" class="choose-file" name="choose-file" onchange="javascript: document.getElementById('uploadpic').submit();" />
    <span class="file-button">- - - - -</span>
</div>
</form>

和 myajax.js:

function sendAjax(n,des,dataform){
    if(dataform==undefined) dataform = des;
    $(dataform).animate({opacity:0.5},100);
    var frm = $('#'+n);
        $.ajax({
        type: frm.attr('method'),
        url: frm.attr('action'),
        data: frm.serialize(),
        success: function (data) {
        $(des).html(data);
            $(dataform).animate({opacity:1},100);
        }
    });
    return false;
}

谢谢...

4

1 回答 1

3

你必须在ajaxForm submit()这里使用一个函数。基本上我是一名 RoR 开发人员。您必须更改 Javascript 部分。(从表单标签中删除提交处理程序)

尝试

<script type="text/javascript">
  $(document).ready(function(){
    $('#File1').change(function() {
      $("#uploadpic").ajaxForm({ target: "#image_view" }).submit();
      return false;
   });
 }); 
</script>

#image_view is just a div. where the response from ajax function can be loaded.
于 2013-05-23T06:05:12.960 回答