我尝试使用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;
}
感谢...
答案 0 :(得分: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.