2014-10-06 82 views
0

我有2“input s与”文本“类型,相同的id和相同的名称(如复制粘贴),我的问题是当我使用自动完成唯一的第一个激活自动填充,但第二个不是。我需要一些帮助,通过使用相同的ID和第一个相同的名字来激活第二个。自动完成不适用于两个相同ID的元素

这是我的代码:

<script> 
    $(function() { 
     $('#id').autocomplete({ 
      source: "show.php",minLength: 2, 
      select: function(event, ui) { 
       $('#name').val(ui.item.name); 
      } 
     }); 
</script> 

<input type="text" class="code" id="id" name="customFieldName[]" value="" placeholder="รายชื่อยา" /> 

<input type="text" class="code" id="id" name="customFieldName[]" value="" placeholder="รายชื่อยา" /> 

Fiddle

+7

元素ID **必须是唯一的。这就是为什么只使用第一个元素的原因(如果标准说元素ID在页面上是唯一的,谁将搜索具有相同ID的第二个元素?)。 – Regent 2014-10-06 17:23:40

+1

你不能有多个元素相同的ID,使用'$('。code')'而不是选择 – juvian 2014-10-06 17:24:04

+2

这个问题实际上自己回答 – Huangism 2014-10-06 17:29:05

回答

2

你应该给输入唯一的ID,并调用自动完成这样的:

<script> 
    $(function() { 
     $('#id, #id2').autocomplete({ 
      source: "show.php",minLength: 2, 
      select: function(event, ui) { 
       $('#name').val(ui.item.name); 
      } 
     }); 
</script> 

<input type="text" class="code" id="id" name="customFieldName[]" value="" placeholder="รายชื่อยา" /> 

<input type="text" class="code" id="id2" name="customFieldName[]" value="" placeholder="รายชื่อยา" /> 
+0

值得一提的是类“代码”的方式。 – Regent 2014-10-06 17:44:02

0

不能使用两个相同的idId必须是唯一的。如果你想使用两个相同的名字,你必须使用class而不是id

相关问题