<script>
layui.config({
base: '/static/admin/' //静态资源所在路径
}).extend({
index: '/lib/index' //主入口模块
}).use(['index', 'useradmin', 'element', 'table', 'laydate'], function() {
var $ = layui.$,
form = layui.form;
form.on('submit(LAY-user-info-submit)',function(data){
var field = data.field;
this.save(field);
});
this.save = function(data){
layer.msg("data");
};
js太长了,只拷贝了有问题的地方。
我外部定义了一个save函数,怎么在里面不能调用,提示错误说save不存在,未定义。Uncaught TypeError: this.save is not a function
怎么能这个参数field传给save函数呢?
这是由于 javascript 中 this 关键字在不同函数内所指向的对象不同所致,this.save 定义的时候 this 应该是指向了 layui ,而给 form 绑定事件的时候 this 应该是指向 form ,因此定义 save 函数的时候 this.save 改为 form.save ,应该就可以了。