0

我在表单中有一个 jquery jhtml WYSIWYG 编辑器,我需要手动将其输出附加到文本区域。表单正在通过 ajax 提交。调用 updateText 函数以获取所见即所得 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 实际触发之前单击两次提交。有没有人有任何想法?

谢谢,

4

1 回答 1

2

当您点击提交时,会发生以下情况:

  1. 正在收集表单数据
  2. beforeSubmit 触发,收集的表单数据作为第一个参数传递
  3. 您正在更改 textarea 的值,但为时已晚,因为已经收集了数据

您应该修改 formData 对象,而不是更改 textarea 的值。

UPD。试试这个:

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

更简单的是,删除隐藏的文本区域并使用它:

function updateText(formData, jqForm, options) {
    formData.push({name: 'textarea_name', value: .... })
    return true;
}; 
于 2011-02-21T06:48:52.037 回答