如何使用jquery load()加载几个表单的AjaxForm?

时间:2010-08-12 13:01:02

标签: jquery ajaxform

我有一个带有div的页面,使用paginator动态填充;-)在页面init我使用jquery .load()方法加载前10个表单。

我想做的是使用AjaxForm插件使所有表单动态更新。我知道服务器端,我们称之为update.asp。它有效。

但有几个问题:

  1. 如何使插件首先工作,因为AjaxForm似乎不适用于动态加载的div中的公司?

  2. 如何识别和命名表单?现在我使用ID并将myForm命名为所有这些(也许这就是为什么它不起作用)。因为如果我使用名称myForm1,myForm2等...我必须编写10个我使用的ajaxForm函数:

         $('#myForm').ajaxForm({
           beforeSubmit: showLoader,
           success: hideLoader
     }); 
    
  3. 然后我需要使用myForm1到myForm10进行10次这样的操作?必须有另一种方式......

    1. 如何使AjaxForm与尚未加载的页面一起使用?我认为这与1)的问题相同。因为即使页面1动态加载,ajaxForm也不会绑定到表单。
    2. 抱歉,我对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;
                        }); 
      
                 });
      
             }
      

2 个答案:

答案 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
     });