我正在用形式练习ajax,并且..我想为了学习而越来越多地混淆自己。将上下文“this”从一个函数传递到另一个函数中?
这可能没有任何意义,但我试图记录姓氏,特别是通过conLog函数。但它显示为未定义,因为我认为上下文“this”不存在,我不知道如何设置它。然而,我设法将它设置在ajax里面。
所以如果你打开日志,第二行表示未定义,而在第一行中,记录来自第一个表单的输入。
https://jsfiddle.net/2oLjqv7c/3/
假设这就是问题所在,我该如何通过 “本” 到CONLOG?
在此先感谢!我发现有几个帖子提出了同样的问题,但感叹......我想我不能理解它,除非它适用于我个人的问题(我仍然需要学习阅读其他人的代码)。
HTML
<form action="/echo/html/" id="form1" method="post">
First Name:
<input type="text" value="first" id="firstName">
<br/>
Last Name:
<input type="text" value="last" id="lastName">
<br/>
<button type="submit" form="form1" value="submit">Submit</button>
</form>
的Javascript/jQuery的
function Display(el) {
this.el = el;
this.firstName = this.el.find("#firstName");
this.lastName = this.el.find("#lastName");
var confirmation = this;
this.el.on('submit', function(e) {
e.preventDefault();
$.ajax('/echo/html/', {
success: function() {
console.log('success' + " " + this.firstName.val());
this.conLog(this.firstName.val(), this.lastName.val());
},
error: function() {
console.log('fail');
},
timeout: 3000,
context: confirmation
});
});
this.conLog = function(first, last) {
this.first = this.first;
this.last = this.last;
console.log(this.first + " " + this.last);
};
}
$(document).ready(function() {
Display($('#form1'));
})
德哦!谢谢!! – giantqtipz