我有一个带有 div 的页面,该页面使用分页器动态填充;-) 在页面初始化时,我使用 jquery .load() 方法加载前 10 个表单。
我想做的是使用 AjaxForm 插件使所有表单都可以动态更新。我了解服务器端,我们称之为 update.asp。它有效。
但是有几个问题:
如何让插件首先工作,因为 AjaxForm 似乎不适用于动态加载的 div 内的行?
如何识别和命名表单?现在我对所有这些都使用了 ID 和名称 myForm(也许这就是它不起作用的原因)。因为如果我使用名称 myForm1、myForm2 等...我必须编写 10 个我使用的 ajaxForm 函数:
$('#myForm').ajaxForm({ beforeSubmit: showLoader, success: hideLoader });
然后我需要使用 myForm1 到 myForm10 进行 10 次吗?一定还有别的办法...
- 如何让 AjaxForm 处理尚未加载的页面?我认为这与1)是同一问题。因为即使第 1 页也是动态加载的,ajaxForm 也不会绑定(bind)到表单。
抱歉,我对jquery很陌生,我正在努力学习它,在我写在这里之前我已经尝试了很长时间了。如果您能帮助我,我将不胜感激。
你的
杰瑞
编辑:现在这是我的加载器...它无法正常工作,因为加载器从未显示,它消失得如此之快,只有在 hideLoader 中设置警报时我才能看到它:-(((
function load(num){
showLoader2();
var link='/obdelaneslike.asp?ID=<%=request.QueryString("IDRecept") %>&offset='+ num
$('#content').load(link, function(){
hideLoader2();
$('.ajax-loader').hide();
$('.myForm').bind("submit", function(event) {
$(this).ajaxForm({
beforeSubmit: showLoader($(this).find('img.ajax-loader').attr('id')),
success: hideLoader($(this).find('img.ajax-loader').attr('id'))
});
return false;
});
});
}
最佳答案
我会尝试一次解决这些问题,以更好地匹配问题:
1) 当您.load()
(或您正在使用的任何 jQuery ajax 方法)或使用像 livequery()
这样的插件时,您可以重新绑定(bind)。 ,例如这里的重新绑定(bind)(在您的 success
处理程序中执行此操作):
$("#myDynamicDiv .myForm").ajaxForm({ ...options... });
或者使用livequery()
:
$(".myForm").livequery(function() { $(this).ajaxForm({ ...options... }); });
2) 每当您想要处理像 class 这样的批量元素时,请在此处使用类而不是 ID,如下所示:
是一条非常安全的路线。上面的示例适用于类,而不是每个表单的 ID(它们可以有 ID,只是不使用)。您的表单标签将如下所示:class="myForm"
<form class="myForm">
3) 答案#1中的相同解决方案解决了这个问题:)
关于jquery - 如何使 AjaxForm 与使用 jquery load() 加载的多个表单一起工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3467894/