Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 为新添加的元素添加自动完成_Jquery_Autocomplete - Fatal编程技术网

Jquery 为新添加的元素添加自动完成

Jquery 为新添加的元素添加自动完成,jquery,autocomplete,Jquery,Autocomplete,我已经使用jqueryautocomplete完成了自动完成。我的要求如下: 自动添加自动完成对于新添加的元素,这些元素有一个公共类:speClass 1.我想读取输入框的值,我不知道如何读取 2.如何为新添加的元素添加自动完成。它仅适用于第一次输入(默认显示) 标题: <script type="text/javascript" src="js/jquery-ui.js"></script> <script type="text/javascript" src

我已经使用jqueryautocomplete完成了自动完成。我的要求如下:

自动添加自动完成对于新添加的元素,这些元素有一个公共类:speClass

1.我想读取输入框的值,我不知道如何读取

2.如何为新添加的元素添加自动完成。它仅适用于第一次输入(默认显示)

标题:

<script type="text/javascript" src="js/jquery-ui.js"></script>  
<script type="text/javascript" src="js/jquery-1.9.1.js"></script>
<tbody id="items">
    <tr>
    <td><input type="text" class="speClass" name="specifications"/></td>
    </tr>
</tbody>

HTML:

<script type="text/javascript" src="js/jquery-ui.js"></script>  
<script type="text/javascript" src="js/jquery-1.9.1.js"></script>
<tbody id="items">
    <tr>
    <td><input type="text" class="speClass" name="specifications"/></td>
    </tr>
</tbody>

JS

function addItem() {
   var item = "<tr><td><input type='text' class='speClass'  name='specifications' /> </tr>" ;
   $("#items").append(item);
}

$(document).ready(function(){ 
    var cache_com = {};
    $(".specClass").autocomplete({
    source: function( request, response ) {
        var term = $(".speClass").val();
        if(term in cache_com) {
            alert(term);
            response($.map(cache_com[term], function(item) {
                return {
                    label: item,
                    value: item
                }

            }));
            return ;
        }

        $.ajax({
            type:"POST",
            url: "loadSpecList.action",
            data:{
                specQuery: term
            },
            success: function( data ) {
                alert(term);
                cache_com[term] = data;
                response( $.map( data, function( item ) {
                     return {
                        label: item,
                        value: item
                     }
                }));
            },
            dataType: "json"
        });
    },
    minLength: 1,
    select: function( event, ui ) {

    }
    });
});
函数addItem(){
var项目=”;
$(“#项目”)。追加(项目);
}
$(文档).ready(函数(){
var cache_com={};
$(“.specClass”).autocomplete({
来源:功能(请求、响应){
var term=$(“.speClass”).val();
if(缓存中的术语){
警报(期限);
响应($.map(缓存com[term],函数(项){
返回{
标签:项目,
价值:项目
}
}));
返回;
}
$.ajax({
类型:“POST”,
url:“loadSpecList.action”,
数据:{
specQuery:术语
},
成功:功能(数据){
警报(期限);
cache_com[术语]=数据;
响应($.map)(数据、功能(项){
返回{
标签:项目,
价值:项目
}
}));
},
数据类型:“json”
});
},
最小长度:1,
选择:功能(事件、用户界面){
}
});
});
PS:我更正了代码中的变量错误

替换

$(“.specifications”).autocomplete({


因为它是一个小部件,所以需要为每个新元素调用小部件初始化

function addItem() {
    var item = "<tr><td><input type='text' class='speClass'  name='specifications' /> </tr>" ;
    var speClass =  $(item).appendTo($("#items")).find('.speClass');
    createAutocomplete(speClass)
}

var cache_com = {};
function createAutocomplete(els){
    els.autocomplete({
        source: function( request, response ) {
            var term = request.term;
            if(term in cache_com) {
                alert(term);
                response($.map(cache_com[term], function(item) {
                    return {
                        label: item,
                        value: item
                    }

                }));
                return ;
            }

            $.ajax({
                type:"POST",
                url: "loadSpecList.action",
                data:{
                    specQuery: term
                },
                success: function( data ) {
                    alert(term);
                    cache_com[term] = data;
                    response( $.map( data, function( item ) {
                        return {
                            label: item,
                            value: item
                        }
                    }));
                },
                dataType: "json"
            });
        },
        minLength: 1,
        select: function( event, ui ) {

        }
    });
}

$(document).ready(function(){ 
    createAutocomplete($(".specifications"))
});
函数addItem(){
var项目=”;
var speClass=$(item).appendTo($(“#items”).find('.speClass');
createAutocomplete(speClass)
}
var cache_com={};
函数createAutocomplete(els){
自动完成({
来源:功能(请求、响应){
var term=request.term;
if(缓存中的术语){
警报(期限);
响应($.map(缓存com[term],函数(项){
返回{
标签:项目,
价值:项目
}
}));
返回;
}
$.ajax({
类型:“POST”,
url:“loadSpecList.action”,
数据:{
specQuery:术语
},
成功:功能(数据){
警报(期限);
cache_com[术语]=数据;
响应($.map)(数据、功能(项){
返回{
标签:项目,
价值:项目
}
}));
},
数据类型:“json”
});
},
最小长度:1,
选择:功能(事件、用户界面){
}
});
}
$(文档).ready(函数(){
CreateAutomplete($(“.specifications”))
});

您可以使用源方法中的
request.term
阅读输入的文本

我无法将您的答案标记为有用,因为我没有15个声誉。这是我的第一篇帖子。