我在表单中有一个 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 实际触发之前单击提交两次。有人有什么想法吗?
谢谢
最佳答案
当您点击提交时,会发生以下情况:
- 正在收集表单数据
- beforeSubmit 触发,收集的表单数据作为第一个参数传递
- 您正在更改 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/