2013-01-16 2 views
0

Я был бы очень признателен, если кто-то может помочь мне с этим кодом. У меня есть поля ввода, которые создаются динамически, нажимая на ссылку. Автосохранение отлично работает только на первом - статическое поле ввода, но я не могу заставить его работать с динамическими.Autosuggest на динамических полях ввода

Вот HTML код:

<tr> 
    <td><label for="addassureed">Additional Assured</label></td> 
<td> 
    <div class="wrapSearch"> 
    <div> 
<input type="text" name="addassured[]" class="input1" id="addassured" size="45" maxlength="1000" onkeyup="autoSuggest(this.id, 'listWrap2', 'searchList2', 'addassured', event);" onKeyDown="keyBoardNav(event, this.id);" /> 
<a href="#" onClick="addInput('dynamicInput');" /><img src="../../img/add.png" height="16" width="16" /></a> 
     </div> 
     <div class="listWrap" id="listWrap2"> 
     <ul class="searchList" id="searchList2"> 
     </ul> 
     </div> 
     </div> 
</td> 

Код для создания полей ввода:

var counterAssured = 1; 
var limit = 10; 
function addInput(divName){ 
if (counterAssured == limit) { 
     alert("You have reached the limit of adding " + counterAssured + " inputs"); 
} else { 
     var newdiv = document.createElement('div'); 
     newdiv.innerHTML = " <td><label>Additional Assured " + (counterAssured + 1) + "</label></td><td><input type='text' name='addassured["+counterAssured+"]' class='input1'></td>"; 
     document.getElementById(divName).appendChild(newdiv); 
     counterAssured++; 
} 
} 

И код PHP для выполнения запросов к БД: autosuggest.php

$dbhost = 'localhost'; // Database Host 
$dbuser = '';  // Database Username 
$dbpass = '';   // Database Password 
$dbname = '';  // Database Name 

$limit = 20; 
if (!isset($_POST['itemCode'])) 
exit; 
$input = trim($_POST['itemCode']); 


$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die(mysql_error()); 
mysql_select_db($dbname); 

$sql = "SELECT company_name FROM contacts WHERE company_name LIKE '".$input."%' LIMIT $limit"; 

$result = mysql_query($sql); 
if (!$result || !mysql_num_rows($result)) 
exit; 
include_once "headers.php"; 
echo "<response>"; 
while ($row = mysql_fetch_array($result)) 
{ 
$keywords = $row['company_name']; 
echo "<keywords>". $keywords ."</keywords>";  
} 
echo "</response>"; 
+0

Попробуйте использовать JQuery. –

ответ

1

Вы пропустили эти два события [OnKeyUp & OnKeyDown] в динамически создаваемых полей

Попробуйте это,

newdiv.innerHTML = ' <td><label>Additional Assured ' + (counterAssured + 1) + '</label></td><td><input type="text" name="addassured['+counterAssured+']" class="input1" onkeyup="autoSuggest(this.id, \'listWrap2\', \'searchList2\', \'addassured\', event);" onKeyDown="keyBoardNav(event, this.id);"></td>'; 

или с альтернативным цитатой синтаксисом:

newdiv.innerHTML = " <td><label>Additional Assured " + (counterAssured + 1) + "</label></td><td><input type=\"text\" name=\"addassured["+counterAssured+"]\" class=\"input1\" onkeyup=\"autoSuggest(this.id, 'listWrap2', 'searchList2', 'addassured', event);\" onKeyDown=\"keyBoardNav(event, this.id);\"></td>"; 
+1

Извините, что являюсь педантом, но хотя JS поддерживает как '' ', так и' '' взаимозаменяемо, html не так, кавычки html должны быть '' '. Я исправил ваш ответ за вас. +1 – Basic

+1

Спасибо. Он использовал одинарные кавычки. Вот почему я не хотел меняться и пошел со своим форматом. В любом случае спасибо за ваше предложение. –

+0

Спасибо, ребята, за вашу помощь. Я попытался с этим изменением, но все еще не работает. Я думаю, что он должен что-то делать с div:

Lilou

Смежные вопросы