我正在使用 Jörn Zaefferer 的自动完成插件 1.2.2。我无法使用 Jquery UI 中包含的较新版本的插件。我链接到服务器上的一个脚本,该脚本在搜索中发送作业名称或作业 ID:
return_arr = array();
/* If connection to database, run sql statement. */
if ($connect)
{
$fetch = mysql_query("SELECT * FROM jobs WHERE job_name LIKE '%". mysql_real_escape_string($_GET['q']) ."%' OR insert_id LIKE '%". mysql_real_escape_string($_GET['q']) ."%' ORDER BY job_name ASC");
/* Retrieve and store in array the results of the query.*/
while ($row = mysql_fetch_array($fetch, MYSQL_ASSOC)) {
$key = $row['job_name']."-".$row['insert_id'];
array_push($return_arr,$key);
}
}
/*Sort Array*/
foreach ($return_arr as $value) {
echo "$value\n";
}
我在 javascript 中使用以下设置:
$("#job_select").autocomplete('../lib/job_select2.php', {
minChars: 0,
autoFill: true,
mustMatch: true,
matchContains: false,
scrollHeight: 220
});
当我在字段中输入职位名称时,会显示由搜索字符串构建的职位列表。当我按 Tab 键移出该字段时,输入会保留。
当我输入工作 ID 时,它会向我显示一份工作列表,但是当我按 Tab 键移出该字段时,该条目就会消失。 我知道这是因为 MustMatch 为 true,但我需要将其设置为 true。 我不想接受数据库中尚未存在的任何输入。
如果您阅读文档,2010 年的评论会说插件已被弃用。您很可能会遇到比弃用时支持的插件更新的 jQuery 最新版本的问题。尝试使用 jQueryUI autocmplete 作为替代品并按照文档中的建议进行操作。
http://bassistance.de/jquery-plugins/jquery-plugin-autocomplete/