我有一个带有div的页面,使用paginator动态填充;-)在页面init我使用jquery .load()方法加载前10个表单。
我想做的是使用AjaxForm插件使所有表单动态更新。我知道服务器端,我们称之为update.asp。它有效。
但有几个问题:
如何使插件首先工作,因为AjaxForm似乎不适用于动态加载的div中的公司?
如何识别和命名表单?现在我使用ID并将myForm命名为所有这些(也许这就是为什么它不起作用)。因为如果我使用名称myForm1,myForm2等...我必须编写10个我使用的ajaxForm函数:
$('#myForm').ajaxForm({
beforeSubmit: showLoader,
success: hideLoader
});
然后我需要使用myForm1到myForm10进行10次这样的操作?必须有另一种方式......
抱歉,我对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;
});
});
}
答案 0 :(得分:2)
我会尝试一次解决这些问题,以便更好地匹配问题:
1)您可以在.load()
(或者您正在使用的任何jQuery ajax方法)或使用livequery()
之类的插件时重新绑定,例如这里的重新绑定-binding(在success
处理程序中执行此操作):
$("#myDynamicDiv .myForm").ajaxForm({ ...options... });
或使用livequery()
:
$(".myForm").livequery(function() { $(this).ajaxForm({ ...options... }); });
2)在这里使用一个类而不是ID,如下所示:class="myForm"
,每当你想处理像这样的批量元素class
时,这是一个非常安全的路线。上面的示例使用类而不是每个表单的ID(它们可以有ID,它们只是不使用)。您的表单标签如下所示:
<form class="myForm">
3)答案#1中的相同解决方案解释了这一点:)
答案 1 :(得分:1)
ID值对于单个DOM元素是唯一的。所以你需要给每个表单一个新的ID,所以如果你有三个表单,你可以这样命名:
<form name="formone" id="formone"...
<form name="formtwo" id="formtwo"...
<form name="formthree" id="formthree"...
现在你要创建ajax请求的实例,如下所示:
$('#formone, #formtwo, #formthree').ajaxForm({
beforeSubmit: showLoader,
success: hideLoader
});