关于Ajax与自定义php MVC的理论问题
Theoretical issue about Ajax with custom php MVC
我正在构建我的第一个AJAX网站,在那里我实现了自定义MVC。
基本上,我用AJAX(通过jQuery)发送的部分到一个大的PHP开关,响应的部分HTML/PHP页面注入到索引页通过AJAX。
我的问题来了,例如,响应有一个表单,我想用AJAX获得。
如果我把我的脚本检索这个表单在我的JavaScript文件它不工作…但是当我把我的脚本在同一页的html响应它的工作,我认为这不是一个正确的方式来编码…我错了吗?
是否有收集所有的JavaScript代码在只有一个文件?
你的JS文件中有PHP代码吗?如果是,那就是问题所在,JS文件不会被PHP解析。
据我所知,您想为表单分配一个事件处理程序。例如,您可能希望分配一个事件处理程序来处理表单的提交事件。
$("#myform").submit(function() {
$.post("sendFromDataHere.php", $(this).serialize());
});
现在,你有两种情况。
- 你把这个脚本放在你的主js文件中。
- 你把这个脚本和返回的html放在一起。
2有效,1无效。这是因为在场景1中,脚本执行时DOM中不存在#myForm。2可以工作,因为它是在#myForm插入DOM时加载的,因此可以分配事件处理程序。
那么该怎么办呢?最肯定的是坏习惯。你可以使用jQuery的.live()和.delegate函数为将来插入到DOM中的元素分配处理程序。如果您使用的是最新版本的jQuery (>= v1.7),您应该看看最近添加的.on()。根据我的理解,它现在应该被用来代替。bind(), .live()和。delegate()。
下面是使用.do()的脚本。
$("body").on("submit", "#myForm", function() {
$.post("sendFromDataHere.php", $(this).serialize());
});
一个好的做法是将"body"选择器替换为你要插入html的容器的选择器。
以下引用自。on()文档
"委托事件的优点是,它们可以处理来自后代元素的事件,这些事件将在以后添加到文档中。通过选择在附加委托事件处理程序时保证存在的元素,您可以使用委托事件来避免频繁地附加和删除事件处理程序。这个元素可以是模型-视图-控制器设计中视图的容器元素…"
使用这种方式分配事件处理程序到你的表单,你应该能够把你的脚本在你的主js文件
- 剑道MVC图表-渲染事件问题
- ASP MVC复选框表单提交问题
- c# mvc nreco HtmlToPdfConverter 问题将 html 文档转换为 pdf
- MVC中选择下拉列表的设置值出现问题
- ASP.NET MVC级联下拉列表列出Javascript问题
- asp.net mvc中的javascript变量出现问题
- MVC.Net 4 Razor问题使用<文本>标签
- 带有 mvc 部分视图问题的花哨框
- MVC与.js文件的棘手问题
- ASP.NET MVC 4 路由问题
- MVC - 用户双击“提交”按钮时出现问题
- asp.net MVC 隐藏字段 ID 问题
- ASP.Net MVC Razor - Javascript 函数路由问题
- 使用 ajax (MVC) 的 JQuery UI 可折叠高度问题
- Ajax调用MVC控制器-URL问题
- 关于Javascript和一般情况下MVC的问题
- 发送选定行值到控制器MVC的问题
- 关于Ajax与自定义php MVC的理论问题
- Node.js MVC路由问题
- ASP.NET MVC模板问题