自动完成和动态参数传递

时间:2010-04-24 19:03:00

标签: jquery autocomplete

使用jQuery UI 1.8和jQuery 1.4.2

,下面的代码可以正常工作
$("#sid_entry_box").autocomplete({
  source:"autocomplete_sid.php?database="+database_name,
  minLength:4,
  delay:1000,
  enable:true,
  cacheLength:1
});

数据库名称作为php调用的get参数传递。

在此应用程序中,通过单选按钮选择了两个数据库。 由于jQuery在加载文档时加载并分配此函数,因此数据库名称是在该momemnt处检查的内容。

我真正需要传递给php调用的内容如下:

database=$("input[name=rf_database_option]:checked").val();

是否有一种易于理解的方式可以传递动态dom值?

3 个答案:

答案 0 :(得分:1)

这样的事情?

function changeDB(database_name) {
    $('#sid_entry_box').autocomplete('option', 'source', "autocomplete_sid.php?database="+database_name);
}

答案 1 :(得分:1)

更改单选按钮后,您可以更改自动完成源:

var database_name = ...;
$("#sid_entry_box").setOptions({
  source:"autocomplete_sid.php?database="+database_name
});

您可以在this page上查看setOptions的示例(查看来源)。

答案 2 :(得分:0)

Puaka的解决方案有效。谢谢!

但是,在我看来,在自动完成中应该有一种方法可以读取任何DOM值,然后将该参数传递给自动完成,然后将其传递给php get例程。

想象一下,如果需要从DOM中获取10个不同的参数。进入并修改10个回调函数,每个都向自动完成功能添加一个选项,这是一个挑战。

希望jQuery的未来文档能够显示更多使用各种自动完成选项的示例。