我有一个名为this.create()
this.create = function() {
var validate = this.validate();
if (validate === false) {
return;
} else if (document.getElementById("nameID").value == "") {
alert("Enter an ID");
} else {
this.runMapping();
$.post('http://*************', {
}, function(data) {
var results = $.parseJSON(data);
if (results.status == "fail") {
alert('FAILED');
} else {
ID = (results.data[0].nameID);
alert("SUCCESS");
this.setDate();
}
});
}
}
另一个名为this.setDate()
的函数:
this.setDate = function() {
alert("In date");
$.get('http:**********',
function(data) {
var results = $.parseJSON(data);
date = (results.data[0].date);
return;
}
)
}
现在,如果我将this.setDate()
放在它自己的按钮上,它可以正常工作,但是在调用this.create()
时拒绝运行,即使alert("SUCCESS")
已在this.create()
中被警告功能。
我应该补充一点,我是JS的新相对论,所以请原谅我这是否是一个容易犯的错误。我还注意到this.runMapping()
this.create()
正常工作。
答案 0 :(得分:2)
这是因为this
现在是您调用this.setDate();
的函数的上下文,并且其中没有此类函数。
使用箭头功能或保存this
对变量的引用,并将您的函数称为
var that = this;
this.create = function() {
....
that.setDate()
...