Вызов функции виджета JQuery из form.submit
Я пытаюсь вызвать публичный метод моего jquery виджета api из form.submit, но у меня нет успеха. Может кто-нибудь мне помочь?
_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 ответ
Решение
_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();
}
}