0

如果有人可以帮助我处理此代码,我将不胜感激。我有通过单击链接动态创建的输入字段。自动建议仅适用于第一个 - 静态输入字段,但我无法使其适用于动态输入字段。

这是 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>";
4

1 回答 1

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>";
于 2013-01-16T12:07:37.777 回答