Я пытаюсь поймать отправку формы с помощью jquery, который был отправлен нажатием кнопки сохранения в редакторе ck.
Мой код JavaScript
$(function() {
var config = {
skin : 'office2003',
toolbar :[
['Save','Preview'],
['Cut','Copy','Paste','PasteText','PasteFromWord','-','Print'],
['Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'],
['NumberedList','BulletedList','-','Outdent','Indent','Blockquote'],
['JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock'],
['Link','Unlink'],
['Image','Table','HorizontalRule','SpecialChar','Iframe'],
['Format','Font','FontSize'],
['TextColor','BGColor', 'Bold','Italic','Underline','Strike','-','Subscript','Superscript']
]
};
$('#cont').ckeditor(config);
$('form').submit(function() {
var form = $(this);
var name = form.children('#name').val();
var desc = form.children('#desc').val();
var cont = form.children('#cont').val();
var id = form.children('#id').val();
$.ajax({
url: basePath + 'admin/ajax/pages/edit',
type: 'POST',
data: {
name: name,
desc: desc,
cont: cont,
id: id
},
success: function(data) {
if (data.response)
$('#ajaxSuccess').show('fast').delay(10000).hide('fast');
else
$('#ajaxError').show('fast').delay(10000).hide('fast');
},
error: function(data) {
$('#ajaxError').show('fast').delay(10000).hide('fast');
}
});
return false;
});
});
Но по какой-то причине обработчик отправки, кажется, даже не вызывается (проверено через alert('called');
в качестве первой строки), вместо этого форма отправляется нормально.
Что я делаю не так?
<ч />
Основываясь на ответе ниже, я обновил свой код до
$(function() {
var saveCmd = {
modes : { wysiwyg:1, source:1 },
exec : function( editor ){
jQuery($form = editor.element.$.form).submit();
}
};
var pluginName = 'safesave';
// Register a plugin named "save".
CKEDITOR.plugins.add(pluginName, {
init : function( editor ){
var command = editor.addCommand( pluginName, saveCmd );
command.modes = { wysiwyg : !!( editor.element.$.form ) };
editor.ui.addButton( 'SafeSave',{
label : editor.lang.save,
command : pluginName,
className : 'cke_button_save'
});
}
});
var config = {
skin : 'office2003',
toolbar :[
['SafeSave','Preview'],
...
Но теперь у меня нет кнопки сохранения, как дела?