我是一个完全的Ajax新手,我发现自己有点迷失在如何最好地处理事情上,我一直在寻找,并找到了一篇关于Ajax的帖子,其中包括这个JavaScript:
$(function () {
$('form').submit(function () {
if ($(this).valid()) {
$.ajax({
url: this.action,
type: this.method,
data: $(this).serialize(),
success: function (result) {
$('#result').html(result);
}
});
}
return false;
});
});我将它合并到我的脚本文件中,在我的网站的一个页面上的一个表单,并很快意识到这实际上附加到所有的表单,整个网站包括登录表单。
我希望将登录表单视为特殊情况,并实际执行重定向,而不是简单地将返回的HTML片段插入到页面上的元素中。
我假设用登录表单的ID替换' form‘会将登录表单与’常规‘表单处理过程区分开来,我想知道这方面的最佳实践是什么。
你有没有像上面这样的“通用”Ajax处理程序,或者根据表单对响应的需要,为每个表单提供特定的JavaScript函数会更好?
发布于 2013-04-26 03:33:38
在我看来,对于本应本地化的情况,您似乎包含了一些通用的东西。在我看来,像这样的包罗万象的方法并不是真正可取的,特别是对于将影响应用程序中的每个表单的东西。
其中真正需要去掉的是$.ajax代码。如果需要,可以使用ajax,否则使用正式发布(这是默认设置)。
使用精确的引用当然会区分应用程序中的某些表单,但这是应该在视图的脚本中完成的,而不是在应用程序范围内包含的一个包罗万象的脚本中。
当我想要提供预览,或者如果我想在用户不离开页面的情况下发布内容时,我倾向于使用ajax。
有时,在很少的情况下,我会有一个页面,通过ajax用几个滑动窗口替换,然后在本系列的末尾,我想要重定向。在这种情况下,我将让控制器返回一个字符串,该字符串允许视图在ajax调用的成功函数中重定向到该字符串。
发布于 2013-04-26 03:27:55
我倾向于保持我的不同,尽管其他人可能会有所不同。它们发布到不同的URL,并对数据做不同的事情。
我通过id引用表单:
$('#myformid")发布于 2013-04-26 03:35:20
如果您只想将您的函数应用于除登录表单之外的所有表单,您可能希望使用不相等选择器。
$('form[id!="loginform"]')...https://stackoverflow.com/questions/16223124
复制相似问题