1

我有一个包含用户信息的行的表。

当某些用户单击该<a id="modify1" data-userid="value">行的链接时,隐藏<div id="formContainer"></div>的内容会动态填充<form>标签(通过 JQueryload('getuserupdateform.php?user_id=X')方法)以更新该用户。

在调用load()方法之后,我调用另一个showModal()<div id="formContainer"></div>(并且它是动态添加的内容)放入模式窗口的函数。

但问题是动态添加的<form>元素不存在于模式窗口中。

以下是相关代码:

    $('a.modify').click(function() {
        $('#formContainer).load('getuserupdateform.php?user_id=X');
        return showModal($(#formContainer));
    });

  showModal = function(element) {
    var modal;
    modal = element.clone();
    //Code for creating the modal window
  }

clone()方法似乎没有克隆动态添加的<form>元素。

我该如何解决这个问题?

4

1 回答 1

1

首先,您应该使用$('a#modify1'), 因为modify1是 ID 而不是类。

您正在运行 showModal,但没有检查load方法是否已完成,因此它找不到任何<form>要克隆的内容。

尝试将 showModal 作为 load 函数的回调:

$('a#modify').click(function() {
    $('#formContainer).load('getuserupdateform.php?user_id=X', function(){
        return showModal($(#formContainer));
    });
});

这样,showModal 将仅在load请求完成时运行。

回调如何工作的详细解释:http: //api.jquery.com/load/

于 2013-07-28T18:20:11.350 回答