2013-07-16 3 views
1

зарегистрировать каждый из моих прокручиваемым, вызвав CKonBlur по одному для каждого из них в $(document).ready(.. метода:CKEDIT GetData: ждать способ закончить перед отправкой данных

function CKonBlur(name) { 
    CKEDITOR.instances[name].on('blur', function() { 
     CKsync(name); // push HTML data from CKEDITOR into the associated textarea 
     storeNotifications(name); // submit the textarea to the server 
    }); 
} 


function CKsync(name) { 
    $("textarea#" + name).val(CKEDITOR.instances[name].getData()); 
} 

К сожалению, кажется, что getData является асинхронным, и я просто не может найти способ дождаться, когда он закончит раньше (!) отправки данных.

Вопрос: как я могу гарантировать, что getData закончен, прежде чем позвонить методу storeNotifications?

Я также попытался использовать checkDirty без какого-либо успеха (он просто упал браузер):

function CKsync(name) { 
    while (CKEDITOR.instances[name].checkDirty() == true); 
    { 
     // do nothing 
    } 
    $("textarea#" + name).val(CKEDITOR.instances[name].getData()); 
} 

ответ

1

Я 100% уверен, что getData() не асинхронно. setData() есть, но getData() нет. Этого не может быть, потому что он возвращает значение. У вас есть ошибка где-то еще.

+0

Я не знаю, что это ошибка; как только я изменил storeNotifications и передал ответ CKEDITOR.instances [name] .getData() напрямую, он работал сразу правильно во всех случаях ... – MrG

Смежные вопросы