0

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 is not defined」という例外が発生する

4

1 に答える 1

1

_cleanFormFieldsあるオブジェクトのプロパティですよね?したがって、直接呼び出すことはできません。オブジェクトを介して参照する必要があります。

yourObject._cleanFormFields();

または、 の_addFormListener()呼び出し方法によっては、 を使用できる場合がありますthis。ただし、コールバック内に問題のフォーム要素があるため、 thisfromの参照を保持する必要があります。_addFormListener().submit()this

_addFormListener: function(map, marker) {
    var form = $(".add-form").clone().show(),
        self = this;
    form.submit(function (event){
       event.preventDefault();
       self._cleanFormFields();
    }
}
于 2012-12-17T01:28:45.760 に答える