JQuery自动完成 - 多个数据发布不起作用

时间:2014-07-18 20:27:26

标签: javascript jquery ajax json autocomplete

        $("#textjawatan" + noid).autocomplete({
            source: function( request, response ) {
                $.ajax({
                    url: "pendaftar_table.php",
                    dataType: "json",
                    data: { term : "pe" } ,
                    success: function( data ) {
                        response( data );
                    }
                    });
            },
            minLength: 2,
            select: function(event, ui) { 
                    $("input#jawatan" + noid).val(ui.item.no);
            }
        });

当我使用

  

数据:{term:“pe”}

它的工作,但当我使用

  

数据:{term:“pe”,id:“jawatan”}

它不起作用,有什么问题?

1 个答案:

答案 0 :(得分:0)

不久前我确实遇到过这个问题。让我用简短的话来解释。

由于jQuery Autocomplete在他们的网站http://api.jqueryui.com/autocomplete/中解释,jQuery自动填充仅接受TERM作为服务器的输出。让我引用页面

  

功能:第三种变体,即回调,提供最多   灵活性,可用于连接任何数据源   自动完成。回调有两个参数:一个请求对象,带有   单个术语属性,指的是当前的值   文字输入。例如,如果用户在城市字段中输入“new yo”,   自动完成术语将等于“new yo”。响应回调,哪个   需要一个参数:向用户建议的数据。这个数据   应该根据提供的术语进行过滤,并且可以是任何一个   上面描述的简单本地数据格式。这很重要   提供自定义源回调以处理错误   请求。即使您,也必须始终调用响应回调   遇到错误。这可确保窗口小部件始终具有   正确的状态。

换句话说,如果你甚至在json dict中添加250个额外的哈希值,它只能在TERM到服务器端。

我是如何解决这个问题的?

我做的是这个。基于jQuery文档,源也可以是ARRAY,所以我在设置jQuery自动完成之前对我的服务器进行了ajax调用,然后提供自动完成插件。

注意:这不是一个非常好的解决方案,我知道它。但由于我的工作细节,我不得不这样做,而且只是一个选择。