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