2

我有一个带有 div 的页面,该页面使用分页器动态填充;-) 在页面初始化时,我使用 jquery .load() 方法在其中加载前 10 个表单。

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

但是有几个问题:

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

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

         $('#myForm').ajaxForm({
           beforeSubmit: showLoader,
           success: hideLoader
     }); 
    

然后我需要使用 myForm1 到 myForm10 进行 10 次?一定有别的办法...

  1. 如何使 AjaxForm 与尚未加载的页面一起工作?我认为这与 1) 是相同的问题。因为即使页面 1 以某种方式动态加载,ajaxForm 也不会绑定到表单。

抱歉,我对 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;
                  }); 

           });

       }
4

2 回答 2

2

我将尝试一次解决这些问题,以更好地匹配问题:

1)您可以在您.load()(或您正在使用的任何 jQuery ajax 方法)或使用类似的插件livequery()时重新绑定,例如这里的重新绑定(在您的success处理程序中执行此操作):

$("#myDynamicDiv .myForm").ajaxForm({ ...options... }); 

或使用livequery()

$(".myForm").livequery(function() { $(this).ajaxForm({ ...options... }); });

2)在这里使用类而不是 ID,如下所示:class="myForm",每当您想处理这样的批量元素时,这class是一条非常安全的路线。上面的示例使用类而不是每个表单的 ID(它们可以有 ID,它们只是不被使用)。您的表单标签将如下所示:

<form class="myForm">

3)答案#1中的相同解决方案说明了这一点:)

于 2010-08-12T13:23:42.787 回答
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
     }); 
于 2010-08-12T13:18:31.253 回答