Имам редактор на 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Когато натиснете бутона за подаване, това се случва:
- Данните от формуляра се събират
- преди Подаване на пожари и събраните данни от формата се предават като първи параметър
- Променяте стойността на 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;
};