JQuery Appreding Value To Textarea не работает до тех пор, пока Ajax не отправил 2-й раз

StackOverflow https://stackoverflow.com/questions/5061886

Вопрос

У меня есть редактор 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:

  1. Form data is being collected
  2. beforeSubmit fires, and the collected form data is being passed as the first parameter
  3. 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;
}; 
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top