Я пытаюсь передать функцию в качестве опции через плагин jquery, который я сам создаю.Создание вашей собственной функции jQuery-plug-функции
В тот момент, когда мой инициализации плагина с помощью следующей опции:
$.fitAjaxSubmit({
formId: "new_team",
postUrl: "/teams/create.json",
redirectUrl: "/teams/",
saveBoxText: "Saving Team...",
beforeSubmitFn: function(){ alert('Boo!'); }
});
В мой плагин я пытаюсь вызвать beforeSubmitFn
как так (я также использую форму Ajax плагин):
(function($){
$.fn.fitAjaxSubmit = function(options) {
var defaults = {
formId: "formId",
postUrl: "postUrl",
redirectUrl: "redirectUrl",
saveBtnId: "save_button",
saveBtnEnableText: "Save",
saveBtnDisableText: "Saving...",
saveBoxId: "saving-box",
saveBoxText: "Saving...",
errorMsgId: "error_messages",
beforeSubmitFn: function(formData, jqForm, options) {},
successFn: function(response) {
if(response.success == true) {
window.location = options.redirectUrl + response.object_id;
} else {
$('#'+options.saveBtnId).removeAttr('disabled').val(options.saveBtnEnableText);
$('#'+options.saveBoxId).text(options.saveBoxText).fadeOut(300);
$('#'+options.errorMsgId).html(errorMessages(response)).hide().fadeIn(300);
window.scrollTo(0,0);
}
}
};
var options = $.extend(defaults, options);
return this.each(function() {
$('#'+options.saveBtnId).click(function() {
$('#'+options.saveBtnId).attr('disabled', 'disabled').val(options.saveBtnDisableText);
$('#'+options.saveBoxId).text(options.saveBoxText).fadeIn(200);
$('#' + options.formId).ajaxForm({
url: options.postUrl,
type: "POST",
dataType: "json",
beforeSubmit: options.beforeSubmitFn,
success: options.successFn
})
});
});
};
})(jQuery);
По какой-то причине beforeSubmitFn работает в Firefox, однако в Internet Explorer, Safari и Chrome это вообще не работает!
Есть ли что-то, что мне не хватает здесь?
Заранее благодарен!
Возможно, что к моменту, когда вы к нему подключились, параметры исчезли. Остальные значения параметров работают? Можете ли вы дать нам еще немного кода? –
Просто добавлено больше кода! Спасибо, парни! – schone
Кажется, что он изолирован от этой строки $ ('#' + options.saveBtnId) .attr ('disabled', 'disabled'). Val (options.saveBtnDisableText); - Не могу понять почему? – schone