JQuery Appreding Value To Textarea не работает до тех пор, пока Ajax не отправил 2-й раз
-
15-11-2019 - |
Вопрос
У меня есть редактор JQuery JHTML WYSIWYG в форме, и мне нужно добавить свой вывод в текстовую валюту вручную.Форма подается через AJAX.Функция UpdateText вызывается, чтобы захватить, что в WYSIWYG DIV и поместите его в текстуарию, чтобы позволить AJAX отправлять его.Я использую обратный вызов ajaxform "BEFOREUSUBMIT, чтобы выстрелить эту функцию.
//For Ajax Form
$('#addFaci').ajaxForm({
beforeSubmit: updateText,
success: function(response) {
eval(response);
}
});
function updateText(formData, jqForm, options){
var save = '#detail';
$(save).val($(save).htmlarea("toHtmlString"));
return true;
};
.
Это не работает над первым отправным ... Вы должны нажать «Отправить дважды, прежде чем UngeTextext» на самом деле Firees.У кого-нибудь есть идеи?
Спасибо,
Решение
When you hit submit this is what happens:
- Form data is being collected
- beforeSubmit fires, and the collected form data is being passed as the first parameter
- You're changing the value of textarea, but it's too late, because data has been already collected
Instead of changing textarea's value you should modify formData object.
UPD. Try this:
for (var i in formData) {
if (formData[i].name == '...name of your textarea here...') {
formData[i].value = ...wysiwyg's html...
}
}
Even easier, remove the hidden textarea and use this:
function updateText(formData, jqForm, options) {
formData.push({name: 'textarea_name', value: .... })
return true;
};
Не связан с StackOverflow