我一直在为一个问题苦苦挣扎。我无法理解具体情况下发生的原因,而不是其他情况。
我有一个javascript函数,该函数调用PHP脚本将文件上传到服务器(标准代码,已经在使用它并且可以正常工作)。
function upload_picture(fieldID, success, error) {
var folderName;
switch (fieldID) {
case "pop_drawing":
folderName = "pop_dwg";
break;
case "pop_installation":
folderName = "pop_inst";
break;
case "pop_picture":
folderName = "pop_pict";
break;
}
var file_data = $('#' + fieldID).prop('files')[0];
var form_data = new FormData();
form_data.append('folder', folderName);
form_data.append('file', file_data);
$.ajax({
url: 'dbh/upload.php',
dataType: 'text',
type: 'POST',
cache: false,
contentType: false,
processData: false,
data: form_data,
success: function (response) {
event.preventDefault();
console.log (response); // display success response from the PHP script
if (response.indexOf("yüklendi") > 0) {
success();
}
},
error: function (response) {
event.preventDefault();
console.log (response); // display success response from the PHP script
error(response);
}
});
}
从代码中的多个点调用该函数,除一点之外,该函数正常运行。在它返回的特定时刻,它会将页面URL更改为
到
由于我无法理解的原因。 URL行中的此字符串是网页上的一些参数,我可以在其中按按钮来调用该函数。
调用该函数的代码为:
function uploadPopPicture () {
if ($('#pop_picture_label').html() !== 'Seçili dosya yok...') {
upload_picture('pop_picture',
function(){
console.log('Görsel yüklendi...');
},
function(error){
console.log('Error:', error);
});
}
}
相同的代码(显然具有不同的参数)在程序的其他地方使用并且可以正常工作。
任何想法我可能会缺少的东西。
非常感谢
答案 0 :(得分:0)
按钮的默认行为是“提交”。如果您未指定任何特定行为,则将执行此操作。因此,无论使用哪种JavaScript,单击它都将提交您的表单。
将属性type="button"
添加到按钮HTML中,这将阻止它自动提交表单。