jquery自动完成输入数组
我有下面的代码,我试图做的是设置一个自动完成输入框,当它被填写时,在它下面创建另一个自动完成输入框jquery自动完成输入数组,jquery,autocomplete,Jquery,Autocomplete,我有下面的代码,我试图做的是设置一个自动完成输入框,当它被填写时,在它下面创建另一个自动完成输入框 我的代码的问题是 由于我使用模糊,它将创建 每次单击“关闭”时都会显示一个新输入 第一个 第二个问题是 我需要设置自动完成 在新创建的输入框上,但是 如果我递归地这样做,它就会 撞车 代码: 函数设置自动完成() { var autoCompleteData=$(“#listContacts”).html().split(“”); //autoCompleteData=replaceAll(a
- 我的代码的问题是 由于我使用模糊,它将创建 每次单击“关闭”时都会显示一个新输入 第一个
- 第二个问题是 我需要设置自动完成 在新创建的输入框上,但是 如果我递归地这样做,它就会 撞车
函数设置自动完成()
{
var autoCompleteData=$(“#listContacts”).html().split(“
”);
//autoCompleteData=replaceAll(autoCompleteData,“,”);
$(“[name |=toemail[]]”。自动完成(autoCompleteData);
$(“[name |=toemail[]”)。结果(函数(事件,项){
$(“[name |=toemail[]]”。blur();
});
$(“[name |=toemail[]”)。blur(函数(){
var newString=$(this.val();
newString=replaceAll(newString,“,”);
$(this.val)(新闻字符串);
var newfield='To:CC:BCC:';
$(“#composeTo”).append(newfield);
});
}
不要将元素设置为一个组,而是在创建每个元素时单独进行。这将停止递归
其次,为了避免在屏幕上单击其他位置时触发onblur事件,您应该捕获按键时按下的tab键。发布我自己的解决方案
function setupAutoComplete()
{
var autoCompleteData = $("#listContacts").html().split("<br>");
$("[name|=toemail[]]").each(function(key, value) {
if (!($(this).hasClass("blurred")))
{
$(this).autocomplete(autoCompleteData);
$(this).result(function(event, item) {
var newString = $(this).val();
newString = replaceAll(newString, "<", "<");
newString = replaceAll(newString, ">", ">");
$(this).val(newString);
$(this).blur();
});
$(this).blur(function(){
if (!($(this).hasClass("blurred")))
{
var newfield = '<p><label class="" disabled="true"><select name="toSelect[]"><option>To: </option><option>CC: </option><option>BCC: </option></select></label><input type="text" value="" name="toemail[]" /></p>';
$("#composeTo").append(newfield);
setupAutoComplete();
$(this).addClass("blurred");
}
});
}
});
函数设置自动完成()
{
var autoCompleteData=$(“#listContacts”).html().split(“
”);
$(“[name |=toemail[]”)。每个(函数(键、值){
if(!($(this).hasClass(“模糊”))
{
$(this).autocomplete(autoCompleteData);
$(此).result(函数(事件,项){
var newString=$(this.val();
newString=replaceAll(newString,“,”);
$(this.val)(新闻字符串);
$(this.blur();
});
$(this.blur(function()){
if(!($(this).hasClass(“模糊”))
{
var newfield='To:CC:BCC:';
$(“#composeTo”).append(newfield);
setupAutoComplete();
$(此).addClass(“模糊”);
}
});
}
});
function setupAutoComplete()
{
var autoCompleteData = $("#listContacts").html().split("<br>");
$("[name|=toemail[]]").each(function(key, value) {
if (!($(this).hasClass("blurred")))
{
$(this).autocomplete(autoCompleteData);
$(this).result(function(event, item) {
var newString = $(this).val();
newString = replaceAll(newString, "<", "<");
newString = replaceAll(newString, ">", ">");
$(this).val(newString);
$(this).blur();
});
$(this).blur(function(){
if (!($(this).hasClass("blurred")))
{
var newfield = '<p><label class="" disabled="true"><select name="toSelect[]"><option>To: </option><option>CC: </option><option>BCC: </option></select></label><input type="text" value="" name="toemail[]" /></p>';
$("#composeTo").append(newfield);
setupAutoComplete();
$(this).addClass("blurred");
}
});
}
});