jquery html创建相同表单的倍数

时间:2009-07-12 16:54:51

标签: jquery ajax

我正在使用ASP.NET MVC,部分视图和对话框。我向服务器发出一个ajax请求,它将我的部分视图移交给我。然后我使用:$('#elementTag')。html(returnData)来重新填充边界div。但是,此局部视图包含包含在表单元素中的对话框的内部工作以及其余部分视图内容。部分视图中包含的javascript,在文档准备好后将设置对话框。

我开始使用这种设计方法:将对话框内容与局部视图捆绑在一起以保持一致。

现在我开始讨论这个问题因为我的一个对话框出了问题。我可以在显示对话框之前初始化对话框窗体中的表单元素,但是当用户请求从对话框保存数据时,使用serializeArray检索的所有元素都是空的。

使用Firebug我注意到每次我请求包含对话框形式的局部视图时,它都会创建另一种相同类型的形式(即,那里确实存在内存泄漏)。我的html被替换了,我相信脚本也被重复了。

所以要么我做错了,要么就是这里有问题。我正在使用模态对话框来提示信息,从对话框序列化数据并将其发送到服务器。

这里的最佳做法是什么?我应该将所有对话框内容捆绑到网站主文件中,将所有javascript捆绑到单个js文件中,还是有办法替换所有内容?

2 个答案:

答案 0 :(得分:0)

我会将所有js放在一个压缩的,gzip服务文件中,这样就可以在第一页上加载和缓存。

为了帮助保持脚本的清晰分离,我倾向于将我的脚本命名为application.pages或controller.action,并且内部有init函数,用于设置该页面所需的功能(加载选项卡,设置模式对话框等),因此它不会如果页面是通过ajax加载的,那么同样的脚本仍然会被执行。这不是简单的设置,但已经带来了回报。 Paul irish在他的博客文章here中也有类似的想法。它也可能对你有帮助。

答案 1 :(得分:0)

感谢您的回复。我是javascript的新手,不是新的,只是非常非常生疏,有很多旧的,坏习惯,很快赶上了我。

不太确定你的回复如何解决我的问题,但那是我的短暂(无知)不是你的,因此,我认为你的回答是答案。

在ajax模式的世界中,了解javascript模式和最佳实践现在变得非常重要。我习惯于完成页面刷新的旧方式(即清除垃圾桶以便为新垃圾腾出空间)。你不仅可以摆脱许多坏习惯。

您的简短回复促使我以新的视角回归基础。