javascript - Jquery 将值附加到文本区域在 ajax 第二次提交之前不起作用

标签 javascript jquery ajax ajaxform jhtmlarea

我在表单中有一个 jquery jhtml WYSIWYG 编辑器,我需要手动将其输出附加到文本区域。该表单是通过 ajax 提交的。 updateText 函数被调用以获取所见即所得 div 中的内容并将其放置在文本区域中以允许 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 实际触发之前单击提交两次。有人有什么想法吗?

谢谢

最佳答案

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

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

关于javascript - Jquery 将值附加到文本区域在 ajax 第二次提交之前不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5061886/

相关文章:

javascript - 在 Javascript 中检测数字溢出

javascript - 如何修改php中的json_encode函数文件?

php - 如何使用 jQuery/Ajax 和 PHP 检索 HTML 和变量

javascript - 加载图像的两种方式,为什么使用ajax更快?

javascript - Bootstrap 选项卡中的事件类动态

javascript - 如何在 C# 中检索字符串 formData js

javascript - 如何使用 oracle jet 在 ojTable 中显示内部对象的值

javascript - 移动设备上的 jVectorMap 需要点击 2 次

javascript - 如何使用 promise 链接多个 setTimeout 函数?

javascript - 将加载 gif 添加到 ajax 请求