2014-10-29 56 views
0

我尝试向自动创建的内容添加自动完成字段时遇到了一些问题。此前它好工作作为文本框在HTML生成的,但我想不出如何使它与动态生成的内容合作(甚至波谷我使用的用于测试目的静态文本框ID)自动完成不适用于动态创建的内容

自动完成:

jQuery(document).ready(function($){ 
var products= JSON.parse('<?php echo json_encode($products_list) ?>'); 
var t = 0; 
var r = '<?php echo json_encode($number_of_rows_tuote) ?>'; 
var availableProducts = []; 
var cellPlace = []; 

while(t < r){ 
availableProducts.push(products[t]['prsku']+":"+products[t]['prname']); 
cellPlace.push(t); 
    t++; 
    } 

    $("#product2").autocomplete({ 
source: availableProducts 
}); 

}); 

动态创建内容

function addElement() 
{ 

var contentID = document.getElementById('more'); 
var newTBDiv = document.createElement('div'); 
newTBDiv.setAttribute('id','strText'+intTextBox); 
newTBDiv.innerHTML ="<br><div class='product'><TABLE><tr>"; 

newTBDiv.innerHTML += "<td><input type='text' placeholder = 'product_code' name='sku_" + intTextBox + "' id='sku_" + intTextBox + "'/></td><td><input type='text' id='product2' name='product2'></td>; 

contentID.appendChild(newTBDiv); 
} 

我希望有人可以帮助我。所有帮助赞赏。 由于

<body onload="addElement();"> 

回答

0

呼叫功能结合自动填充,如下所示,并从身体中移除onload

<body> 

注意 - 你已经错过了"在动态元素串即结束</td>后,请更正。

jQuery(document).ready(function($){ 
var products= JSON.parse('<?php echo json_encode($products_list) ?>'); 
var t = 0; 
var r = '<?php echo json_encode($number_of_rows_tuote) ?>'; 
var availableProducts = []; 
var cellPlace = []; 

while(t < r){ 
availableProducts.push(products[t]['prsku']+":"+products[t]['prname']); 
cellPlace.push(t); 
    t++; 
    } 

    $('body').load(function(){ 
     var contentID = document.getElementById('more'); 
     var newTBDiv = document.createElement('div'); 
     newTBDiv.setAttribute('id','strText'+intTextBox); 
     newTBDiv.innerHTML ="<br><div class='product'><TABLE><tr>"; 

     newTBDiv.innerHTML += "<td><input type='text' placeholder = 'product_code' name='sku_" + intTextBox + "' id='sku_" + intTextBox + "'/></td><td><input type='text' id='Product2' name='product2'></td>"; 
     contentID.appendChild(newTBDiv); 
     //bind autocomplete 
     $("#Product2").autocomplete({ 
     source: availableProducts 
     }); 
    }); 

}); 
+0

感谢有关想念的一角”。Thew bindAutocomplete似乎并没有工作。首先我得到可用的产品没有定义,移动的定义,当泰德错误部分相同的功能我得到TypeError:$(...)。自动完成是不是一个功能 – user1054844 2014-10-29 10:11:48

+0

请检查更新的答案 – 2014-10-29 10:20:59

+0

对不起,仍然无法正常工作。是否可能是由包含脚本冲突引起的?另一个网站有一个人类似的问题,这是他的解决方案 – user1054844 2014-10-29 12:27:51

0

尝试在addElement函数后调用自动完成函数。 或 只需添加 $(“#product2”).autocomplete({source:availableProducts }); 这些线路在最后你的addElement功能的这样

  function addElement() 
      { 

      var contentID = document.getElementById('more'); 
      var newTBDiv = document.createElement('div'); 
      newTBDiv.setAttribute('id','strText'+intTextBox); 
      newTBDiv.innerHTML ="<br><div class='product'><TABLE><tr>"; 

      newTBDiv.innerHTML += "<td><input type='text' placeholder = 'product_code' name='sku_" + intTextBox + "' id='sku_" + intTextBox + "'/></td><td><input type='text' id='product2' name='product2'></td>; 

      contentID.appendChild(newTBDiv); 
      $("#product2").autocomplete({ 
      source: availableProducts 
      }); 

      } 
+0

似乎并没有工作首先我得到的错误,可用产品没有定义,当移动的定义部分相同的功能我得到TypeError:$(...)自动完成不是一个函数 – user1054844 2014-10-29 10:11:05

相关问题