我有一个 html 文件、一个 javascript 文件和 jquery。
在javascript中,我有一个命名空间函数,返回一个对象,该对象带有我想从外部调用的函数。这是为了创建“公共”和“私人”功能。
在 HTML 中,我想触发返回对象中的这个函数。然而它不承认它。在控制台中,我收到此错误:
TypeError:BATCH.SendSMS.uploadFiles 不是函数
它应该可以工作,我以前做过,所以我一定做错了什么。你能看一下吗:
HTML:
<!DOCTYPE html>
<html>
<head>
<title>Batch SMS</title>
<style media="all" type="text/css">
@import url("main.css");
</style>
<script type="text/javascript" src="./js/batchsms.js"></script>
</head>
<body>
<form enctype="multipart/form-data" id="upload-form">
<div id="fields">
<div>
<span>Sender: </span>
<select id="sender">
<option value="">Maak keuze</option>
<option value="Sender1">Sender 1</option>
<option value="Sender2">Sender 2</option>
<option value="Sender3">Sender 3</option>
</select>
</div>
<div>
<span>Phone file:</span>
<input id="phone" name="phone" type="file">
</div>
<div>
<span>Appointment file:</span>
<input id="appointment" name="appointment" type="file">
</div>
<div>
<span></span>
<input type="button" value="Upload Files" onclick="BATCH.SendSMS.uploadFiles();">
</div>
</div>
</form>
</body>
</html>
JS:
var BATCH = BATCH || {};
BATCH.SendSMS = function() {
var error = "";
var setError = function() {
$('#main').prepend($('<div>').append(error));
};
return {
uploadFiles: function() {
var formData = new FormData($('form')[0]);
//start ajax request
$.ajax({
type: "POST",
url: "php/upload.php",
data: formData,
dataType: "json",
success: function(data) {
console.log(data);
},
error: function(data){
console.log(data);
},
cache: false,
contentType: false,
processData: false
});
}
};
}