从form.submit调用JQuery小部件函数

时间:2012-12-17 01:25:38

标签: jquery jquery-ui jquery-plugins jquery-widgets

我试图从form.submit调用我的jquery小部件api的公共方法但是我没有成功。任何人都可以帮助我吗?

_cleanFormFields: function() {
  console.log("ok");
},

_addFormListener: function(map, marker) {
    var form = $(".add-form").clone().show();
    form.submit(function (event){
       event.preventDefault();
       _cleanFormFields();
    }
}           

为什么这不起作用?浏览器的控制台引发“Uncaught ReferenceError:_cleanFormFields未定义”异常

1 个答案:

答案 0 :(得分:1)

_cleanFormFields是某个对象的属性,对吧?所以你不能直接调用它,你需要通过你的对象引用它:

yourObject._cleanFormFields();

或者,根据_addFormListener()的调用方式,您可以使用this。但是,您需要保留this _addFormListener()的引用,因为.submit()回调this中的内容将成为相关的表单元素:

_addFormListener: function(map, marker) {
    var form = $(".add-form").clone().show(),
        self = this;
    form.submit(function (event){
       event.preventDefault();
       self._cleanFormFields();
    }
}