【发布时间】:2017-06-01 09:50:47
【问题描述】:
我正在尝试将http://malsup.com/jquery/form/progress.html 上的进度条集成到 php 上传表单中。它工作得很好,除了它在提交第一个表单后在同一页面上返回重复的上传表单。请参阅下面的表单截图。
ajax 调用如下:
<script type="text/javascript">
(function() {
var bar = $('.bar');
var percent = $('.percent');
var status = $('#status');
$('#Myform').ajaxForm({
beforeSend: function() {
status.empty();
var percentVal = '0%';
bar.width(percentVal)
percent.html(percentVal);
},
uploadProgress: function(event, position, total, percentComplete) {
var percentVal = percentComplete + '%';
bar.width(percentVal)
percent.html(percentVal);
},
success: function() {
var percentVal = '100%';
bar.width(percentVal)
percent.html(percentVal);
},
complete: function(xhr) {
status.html(xhr.responseText);
}
});
})();
html部分可以表示为:
<form id="#Myform" action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post" enctype="multipart/form-data">
<input type="file" name="DocFile"/>
<input type="submit" id="upload" value="Upload"/>
</form>
<div class="progress">
<div class="bar"></div >
<div class="percent">0%</div >
</div>
<div id="status"></div>
我将表单验证消息存储在 PHP 数组中,并将这些消息输出到我的上传脚本中的预定义 div。
xhr.responseText在#status div 中输出 PHP 验证消息,但它会导致出现重复的表单,如所附屏幕截图所示。
知道这里出了什么问题吗?
【问题讨论】:
-
你能显示你的html代码吗?
-
我编辑了我的问题。你可以在那里看到html部分。
-
<form id="#Myform"remove '#' -
你还没有结束你的标签
-
这是一个错字。我没有将#Myform 存储在变量中。
标签: php ajax forms xmlhttprequest progress-bar