/ / Jquery добавяне на стойност към textarea не работи, докато ajax не представи 2-ри път - javascript, jquery, ajax, ajaxform, jhtmlarea

Jquery придава стойност на textarea не работи, докато ajax изпрати 2-ри време - javascript, jquery, ajax, ajaxform, jhtmlarea

Имам редактор на jquery jhtml WYSIWYG във формаи трябва да добавя ръчно изхода си към textarea. Формулярът се подава чрез ajax. Извиква се функцията updateText, за да вземе какво се съдържа в wysiwyg div и да го постави в textarea, за да може Ajax да го изпрати. Използвам обратния извикване на ajaxForm „beforeSubmit“, за да изключа тази функция.

//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;
};

Това не работи при първото изпращане ... трябва да щракнете върху „Изпращане“ два пъти, преди updateText действително да се задейства. Някой има ли идеи?

Благодаря,

Отговори:

2 за отговор № 1

Когато натиснете бутона за подаване, това се случва:

  1. Данните от формуляра се събират
  2. преди Подаване на пожари и събраните данни от формата се предават като първи параметър
  3. Променяте стойността на textarea, но е твърде късно, защото данните вече са събрани

Вместо да променяте стойността на textarea, трябва да промените обекта formData.

UPD. Опитайте тази:

for (var i in formData) {
if (formData[i].name == "...name of your textarea here...") {
formData[i].value = ...wysiwyg"s html...
}
}

Още по-лесно премахнете скритата textarea и използвайте това:

function updateText(formData, jqForm, options) {
formData.push({name: "textarea_name", value: .... })
return true;
};