多个输入框的jQuery自动完成功能

3
我希望您能为多个文本输入框添加自动完成功能...但是使用此自动完成。
<html><head><script type="text/javascript" src="jquery-1.4.js"></script>
<script type='text/javascript' src='jquery.autocomplete.js'></script>
<link rel="stylesheet" type="text/css" href="jquery.autocomplete.css" />
<link rel="stylesheet" href="main.css" type="text/css" />

<script type="text/javascript">

$().ready(function() {
      $("#perkiraan").autocomplete("proses_akun.php", { width:350, max:28, scroll:false });
});

</script>
</head>
<body>
<div class="demo" style="width: 250px;">
<div>
<p>Nama Akun : <input type="text" id="perkiraan"  name="perkiraan" size="65"></p>
</div>
</div>
<div id="pilihan">
</div>

<div class="demo" style="width: 250px;"><div>
<p>Nama Akun : <input type="text" id="perkiraan"  name="perkiraan" size="65"></p>
</div>
</div>  

<div id="pilihan">
</div>
</body>
</html>

我知道这是因为JQuery只允许一个相同名称的许可证......但是我想添加更多的输入文本(第二个,第三个等)在第一个下面,也使用JavaScript,而不必复制粘贴脚本并更改其名称......请帮帮我,谢谢。


意思是你想为其他文本框触发相同的事件,即“自动完成”。 - Tamkeen
可能会对你有帮助,可以在这里链接:http://stackoverflow.com/questions/3102826/jquery-selectors - Tamkeen
2个回答

4

工作演示 http://jsfiddle.net/nckYT/

请注意,DOM中的元素不应具有相同的id属性,这在上面的示例中是这种情况。即id="perkiraan"解决方法是使用class属性。

我认为官方文档说如果有多个相同的id,那么它会把最后一个被标识的元素作为标识元素。

对于多个元素,您可以像这样使用自动完成类元素$( ".perkiraan" ).autocomplete({,这将使所有具有perkiraan类的元素都附加自动完成。 或者您可以链接不同的id,例如$( "#perkiraan, #foo" ).autocomplete({,但添加类将起到作用。

希望这有所帮助,如果我遗漏了什么,请告诉我,:)

结束

<body><div class="demo" style="width: 250px;">
    <div><p>Nama Akun : <input type="text" class="perkiraan"  name="perkiraan" size="65"></p></div></div><div id="pilihan"></div>
    <div class="demo" style="width: 250px;">
<div><p>Nama Akun : <input type="text" class="perkiraan"  name="perkiraan" size="65"></p></div></div>  <div id="pilihan"></div></body>

图像1输入1 在此输入图像描述

图像2输入2 在此输入图像描述


(这是两个包含图像的HTML代码段,无法提供更多信息)

但是,仍然只有一个文本字段可以使用自动完成,第二个等不能使用它... - Myan
@Myan 不是,看这个演示 http://jsfiddle.net/nckYT/ 在两个文本框中都输入1,你会看到自动完成功能对两个文本框都有效。我还附加了图片来展示,如果可以的话,建议阅读HTML文档和Jquery文档,但以上工作演示应该有所帮助:) - Tats_innit
那就是你的HTML有问题了,而且我在你的代码中只能看到一个文本框 <input type="text" name="id_perkiraan[]" class="id_perkiraan" size=75 autocomplete="off">。此外,Json与你的问题无关,它只是数据源,请检查你的php文件。你能否在jsfiddle中重新创建你的问题,我可能会帮助你解决,顺便说一句,希望你的路径是正确的 "j query/js/cari.php" - Tats_innit
@Myan 我可以看一下,但我不知道你想做什么。如果你想在多个输入框中添加autocmplete,上面的演示将会有所帮助。如果你遇到了演示问题,你需要阅读你的代码并找出问题所在。无论如何,PHP代码在哪里? - Tats_innit
@Myan 不用担心,我认为你需要先看看语法上的错误,不要慌张。另外,我正在努力理解你的其他问题。据我所见,你的“获取数据”部分没有返回任何数据,因此“自动完成”失败了,即需要确定问题所在。此外,关于如何将多个字段与上面的自动完成演示相关联,可以参考一下 :) 祝你好运。 - Tats_innit
显示剩余3条评论

0

很简单,只需将 $("#perkiraan").autocomplete 更改为 $(".classname").autocomplete,然后完成

注意:所有文本字段中的类名应相同


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接