在不在DOM中的表单上使用自动完成

时间:2013-10-10 20:30:27

标签: jquery-plugins jquery

首先让我说我正在使用JQuery 1.3.2版。此时升级不是一种选择。

在发生页面加载后,我有一个由模板系统添加的表单。我对JQuery很新,但我的理解是live允许我访问它。

自动完成功能已经为用户搜索服务并且效果很好。我想为网站的管理员部分共享此功能,以及查询几乎完全相同。

clientName元素来自动态添加的表单。如果我使用下面的代码,没有任何反应;没有数据被检索。

  $('#clientName')
  .site_clientAutocomplete(
    'admin',
    function( $event, $result, $data )
    {
      $('#clientName').val($data.ClientName);
    }
  );

如果我将它包装在以下代码中,它将起作用。在我从数据库中取回任何内容之前,我必须多次在输入框内单击。

$("#clientName").live('keydown', function(){

});

有人可以告诉我如何让这个自动完成功能正常运行吗?

1 个答案:

答案 0 :(得分:1)

live仅用于处理现在或将来与选择器匹配的元素上发生的事件。如果您需要更健壮地检测与您的选择器匹配的元素,您可以在添加内容时应用窗口小部件,也可以使用livequery plugin

通过livequery,你可以"听"对于与您的选择器匹配的新元素,并在该事件发生时运行函数。在你的情况下,这将是这样的:

$('clientName').livequery(function () {
    $('#clientName').site_clientAutocomplete(
        'admin',
        function( $event, $result, $data )
        {
            $('#clientName').val($data.ClientName);
        }
   );
});