Ich habe eine Anwendung, auf die Sie zugreifen können here. Wenn Sie die Anwendung öffnen, klicken Sie bitte mehrmals auf die Schaltfläche "Hinzufügen". Dadurch wird eine neue Zeile in eine Tabelle eingefügt. In jeder Tabellenzeile gibt es einen AJAX-Datei-Uploader.Es hört nicht auf, eine Datei hochzuladen
Das Problem, das ich habe, ist, dass, wenn Sie auf die Schaltfläche "Upload" klicken, zeigt es eine Ladeleiste, aber das Problem ist, dass die Ladebalken einfach nicht weggeht. Was passieren sollte, ist, dass der Benutzer auf "Upload" klickt und dann die Datei erneut anzeigt und die Schaltflächen mit einer Nachricht darüber anzeigt, ob die Datei erfolgreich geladen wurde oder nicht?
Warum hört der Ladebalken nie auf zu laden und wie kann ich das beheben?
Unten ist der Code der Eingabedatei in jeder Zeile und die JavaScript-Funktionen angehängt, die es das Hochladen annehmen, um zu starten und zu stoppen:
<script type="text/javascript">
function insertQuestion(form) {
var $tbody = $('#qandatbl > tbody');
var $tr = $("<tr class='optionAndAnswer' align='center'></tr>");
var $image = $("<td class='image'></td>");
var $fileImage = $("<form action='upload.php' method='post' enctype='multipart/form-data' target='upload_target' onsubmit='startUpload(this);' >" +
"<p class='f1_upload_process' align='center'>Loading...<br/><img src='Images/loader.gif' /><br/></p><p class='f1_upload_form' align='center'><br/><label>" +
"File: <input name='fileImage' type='file' class='fileImage' /></label><br/><label><input type='submit' name='submitBtn' class='sbtn' value='Upload' /></label>" +
"</p> <iframe class='upload_target' name='upload_target' src='#' style='wclassth:0;height:0;border:0px solclass #fff;'></iframe></form>");
$image.append($fileImage);
$tr.append($image);
$tbody.append($tr);
}
function startUpload(source_form){
$(source_form).find('.f1_upload_process').css('visibility','visible');
$(source_form).find('.f1_upload_form').css('visibility','hidden');
return true;
}
function stopUpload(success, source_form){
var result = '';
if (success == 1){
result = '<span class="msg">The file was uploaded successfully!<\/span><br/><br/>';
}
else {
result = '<span class="emsg">There was an error during file upload!<\/span><br/><br/>';
}
$(source_form).find('.f1_upload_process').css('visibility','hidden');
$(source_form).find('.f1_upload_form').html(result + '<label>File: <input name="fileImage" type="file"/><\/label><label><input type="submit" name="submitBtn" class="sbtn" value="Upload" /><\/label>');
$(source_form).find('.f1_upload_form').css('visibility','visible');
return true;
}
</script>
Also, wie definiere ich das source_form, weil die source_form Variable ich von einem Beispiel bekommen habe. Gebe ich der Klasse eine Klasse namens source_form? –
user1304328
Ich habe gerade meine Antwort bearbeitet, um eine Lösung hinzuzufügen. Ich denke immer noch, dass Sie mit jQuery ajax() arbeiten sollten. Es wird meiner Meinung nach viel einfacher. –
Es wird immer noch nicht den Upload stoppen – user1304328