jQuery自动完成为ajax调用动态创建的输入
jQuery autocomplete for dynamically created inputs for ajax call
我使用jQuery自动完成动态创建的输入(再次使用jQuery创建)的问题。我不能让自动完成绑定到新的输入。
<script type="text/javascript">
window.count = 0;
if (!window.console) console = {log: function() {}};
var autocomp_opt = {
width: 300,
max: 10,
delay: 100,
minLength: 1,
autoFocus: true,
cacheLength: 1,
scroll: true,
highlight: false,
source: function(request, response) {
$.ajax({
url: "/test/JSON/PACS8Data",
dataType: "json",
data: request,
success: function( data, textStatus, jqXHR) {
console.log( data);
var items = data;
response(items);
},
error: function(jqXHR, textStatus, errorThrown){
console.log( textStatus);
}
});
},
};
function addme () {
window.count++;
var text = $( "#hiddenDiv" ).html();
text = replaceAll("XXYY", ""+window.count, text);
$( "#appendText" ).append(text);
$('.description', text).autocomplete(autocomp_opt);
}
function replaceAll(find, replace, str) {
return str.replace(new RegExp(find, 'g'), replace);
}
</script>
<br />
<div id="jsftextAjax" >
<table>
<tr>
<td>
<input id="autoText0" class="description" maxlength="20" />
</td>
<td>
<input id="valueText0" maxlength="20" />
</td>
<td>
<button id="add0" type="button" onclick="addme();">Add</button>
</td>
</tr>
</table>
</div>
<div id="appendText">
</div>
<div id="hiddenDiv" style="display:none;" >
<table>
<tr>
<td>
<input id="autoTextXXYY" class="description" maxlength="20" />
</td>
<td>
<input id="valueTextXXYY" maxlength="20" />
</td>
<td>
<button id="addXXYY" type="button" onclick="addme();">Add</button>
</td>
</tr>
</table>
</div>
我知道这个问题是由于页面加载后创建的内容,但我不知道如何绕过它。我已经阅读了几个相关的问题,并遇到了jQuery live方法,但我仍然陷入困境!
任何建议吗?
$('.description', text).autocomplete(autocomp_opt); <-- You are looking at a string text as the context
您需要处理添加的元素。
$( "#appendText" )
.append(text)
.find('.description')
.autocomplete(autocomp_opt);
或
var elems = $(text);
$( "#appendText" ).append(elems);
elems.find('.description').autocomplete(autocomp_opt);
使用下面的代码片段
从$('.description').autocomplete(autocomp_opt);
中移除text
function addme () {
window.count++;
var text = $( "#hiddenDiv" ).html();
text = replaceAll("XXYY", ""+window.count, text);
$( "#appendText" ).append(text);
$('.description').autocomplete(autocomp_opt);
}
演示工作注释:
autocomplete()
代码将不工作的第一组文本框。在$(document).ready(...)
$('.description').autocomplete(autocomp_opt);
相关文章:
- 使用Google Visualization动态调用构造函数
- 使用javascript和php动态调用图像
- 如何从变量中动态调用工厂方法
- 角度js 我无法动态调用我的按钮
- JavaScript:嵌套函数的动态调用
- JavaScript:动态调用对象内的函数
- 从 html 动态调用 javascript 对象函数
- 动态调用类函数
- 在 KNOCKOUT.js 中动态调用 attr src 上的子级函数
- 使用来自 json 对象的参数动态调用方法/函数
- Javascript 函数从动态添加的代码动态调用
- 无法在某些浏览器中从某些 HTML 页面动态调用.js文件
- jQuery 动态调用事件侦听器
- 谷歌脚本如何动态调用库函数
- 在jquery插件上动态调用自定义事件
- AngularJS ng-click()在控制器中的.append('')函数的动态调用中不起作用
- 在jquery中动态调用同级时未定义
- 如何在MVC 4剃刀中动态调用图像上的工具提示
- 动态调用SELECT上的Change
- 在Javascript中动态调用函数