我正在使用jQuery编写一个非常繁重的Javascript应用程序。当我执行AJAX表单帖子时,我遇到的一个问题就出现了。最初,表单是从服务器端模板引擎呈现的,这些表单具有默认值集。表单有两个选项,SAVE和CANCEL(还原)。当用户单击“保存”时,表单数据将通过jQuery发布到服务器。当用户点击“取消”时,表单上会调用Javascript的reset()
函数。
当我在表单上输入/更新字段然后保存它时,会出现真正的问题。如果我再次尝试编辑表单并单击“取消”,则表单将恢复为原始状态(初始页面呈现时表单的状态),而不是最后一次AJAX提交的状态。
Javascript的reset()
函数似乎正在使用在页面渲染上设置的'value','checked'等属性。如果是这种情况,更新表单值的最佳方法是什么,以便reset()
方法将恢复到我通过AJAX提交表单的最后一个点?
答案 0 :(得分:2)
您需要“重新绘制”表单,以便他们的“初始值”是AJAX提交的那些。表单重置依赖于在页面上绘制元素时出现的值。 here's a demo显示概念
再次使用模板和成功的值重建该表单。你可以使用像胡子这样的JS模板引擎动态执行此操作,也可以在本地缓存模板,这样你就不会做额外的HTTP请求