javascript 添加的文本区域需要自动完成
auto-complete needed in javascript added textarea
在下面的代码中,自动完成在文本区域中正常工作。但它在点击按钮 +procedure
后在添加的文本区域中不起作用
我需要自动完成功能来处理使用按钮添加的所有文本区域。我该怎么做?
现在自动完成是区分大小写的。无论 CASE 如何让自动完成发生?
HTML:
<div id="p_procedures">
<textarea rows=5 cols=50>
</textarea>
</div><a href="#" id="addProcd">+ Procedure</a>
JS:
$('textarea').textcomplete([{
match: /(^|\s)(\w{2,})$/,
search: function (term, callback) {
var words = ['google', 'facebook', 'GITHUB', 'microsoft', 'yahoo'];
callback($.map(words, function (word) {
return word.indexOf(term) === 0 ? word : null;
}));
},
replace: function (word) {
return word + ' ';
}
}]);
var procdDiv = $('#p_procedures');
var i = $('#p_equipments p').size() + 2;
$('#addProcd').on('click', function(){
var t ='<textarea rows=5 cols=50></textarea>';
$(t).appendTo(procdDiv);
p++;
return false;
});
添加新元素时:
$(t).appendTo(procdDiv);
自动完成插件的初始化与任何其他元素完全一样:
$(t).textcomplete({ ...options... });
而不是 copy/paste 整个初始化,您可以将它提取到一个可以在需要的地方调用的函数中,并且您可以为该函数提供目标元素。或者甚至只是将插件选项放在一个变量中:
var textCompleteOptions = [{
match: /(^|\s)(\w{2,})$/,
search: function (term, callback) {
var words = ['google', 'facebook', 'GITHUB', 'microsoft', 'yahoo'];
callback($.map(words, function (word) {
return word.indexOf(term) === 0 ? word : null;
}));
},
replace: function (word) {
return word + ' ';
}
}];
然后用这些选项重复调用它:
$('textarea').textcomplete(textCompleteOptions);
以后...
$(t).textcomplete(textCompleteOptions);
不过,关键是任何时候你想在给定的 textarea
上初始化插件,你都需要调用插件初始化程序。 jQuery 不会为你做那件事。
在这里解决区分大小写的问题
search: function (term, callback) {
var words = ['google', 'facebook', 'GITHUB', 'microsoft', 'yahoo'];
callback($.map(words, function (word) {
return word.toLowerCase().indexOf(term.toLowerCase()) === 0 ? word : null;
}));
在下面的代码中,自动完成在文本区域中正常工作。但它在点击按钮 +procedure
后在添加的文本区域中不起作用我需要自动完成功能来处理使用按钮添加的所有文本区域。我该怎么做?
现在自动完成是区分大小写的。无论 CASE 如何让自动完成发生?
HTML:<div id="p_procedures"> <textarea rows=5 cols=50> </textarea> </div><a href="#" id="addProcd">+ Procedure</a>
JS:
$('textarea').textcomplete([{
match: /(^|\s)(\w{2,})$/,
search: function (term, callback) {
var words = ['google', 'facebook', 'GITHUB', 'microsoft', 'yahoo'];
callback($.map(words, function (word) {
return word.indexOf(term) === 0 ? word : null;
}));
},
replace: function (word) {
return word + ' ';
}
}]);
var procdDiv = $('#p_procedures');
var i = $('#p_equipments p').size() + 2;
$('#addProcd').on('click', function(){
var t ='<textarea rows=5 cols=50></textarea>';
$(t).appendTo(procdDiv);
p++;
return false;
});
添加新元素时:
$(t).appendTo(procdDiv);
自动完成插件的初始化与任何其他元素完全一样:
$(t).textcomplete({ ...options... });
而不是 copy/paste 整个初始化,您可以将它提取到一个可以在需要的地方调用的函数中,并且您可以为该函数提供目标元素。或者甚至只是将插件选项放在一个变量中:
var textCompleteOptions = [{
match: /(^|\s)(\w{2,})$/,
search: function (term, callback) {
var words = ['google', 'facebook', 'GITHUB', 'microsoft', 'yahoo'];
callback($.map(words, function (word) {
return word.indexOf(term) === 0 ? word : null;
}));
},
replace: function (word) {
return word + ' ';
}
}];
然后用这些选项重复调用它:
$('textarea').textcomplete(textCompleteOptions);
以后...
$(t).textcomplete(textCompleteOptions);
不过,关键是任何时候你想在给定的 textarea
上初始化插件,你都需要调用插件初始化程序。 jQuery 不会为你做那件事。
在这里解决区分大小写的问题
search: function (term, callback) {
var words = ['google', 'facebook', 'GITHUB', 'microsoft', 'yahoo'];
callback($.map(words, function (word) {
return word.toLowerCase().indexOf(term.toLowerCase()) === 0 ? word : null;
}));