【发布时间】:2015-07-29 06:37:18
【问题描述】:
在我的 CMS 上,我使用标记为公开的帖子,并在标记为将生成的 html 放入 textarea 的表单上,当我第一次提交(创建新帖子)时,表单被正确序列化。
创建后我的 CMS 追加一个输入(输入文本),其中包含一些特定信息和按钮以进行编辑和删除,过程是相同的,但是当我尝试序列化表单时:
$(e).serialize() // e ----> '#form'
我看到了我的 textarea 的旧值(原始),并且只有在提交(编辑)后我才能得到正确的序列化信息。
我有实时预览,所以 textarea 总是有最近的内容。 . .
问题可能出在哪里?
因为如果我尝试编辑帖子(直接从帖子列表访问),一切正常,并且表单总是正确序列化。
函数代码:
var form_submit = function(e, f){
console.log('FORM')
e.preventDefault();
NProgress.start();
console.log($(f).serialize()+'&req_type=put')
$.post(
f.action, $(f).serialize()+'&req_type=put'
).success(function(d){
// ....
}).error(function(d){
// ....
})
}
【问题讨论】:
-
没有看到更多代码我不能确定,但我想这是因为您将表单数据存储到
e与原始值,并且您序列化该变量,而不是当前表单值。 -
@sharf 当然,我添加了完整的功能,如果我从原始帖子编辑页面编辑帖子,它可以正常工作,而不是从转换到编辑页面。 . . .
-
#full_mark的默认值是3s还是4s? -
@sharf 4s。例如,如果我用 1s 创建 textarea,我会看到正确的序列化,但是当我第一次编辑并更改为 2s 时,我会看到 1s,但如果我再次将时间更改为 3s 并提交,我会看到 2s。 .. 第二次提交后我总是看到正确的序列化
-
每当序列化发生时,它要么使用旧元素进行,要么在更改传播之前发生。
标签: javascript jquery ajax forms serialization