大家下午好!
我节省了很多时间,阅读stackoverflow上的所有帖子……我无法使用multilpe输入字段进行自动完成.
我尝试将’autoc’类赋予每个输入,我为每个字段使用不同的id(实际上是PHP循环生成字段的inedx).
我不要求别人为我做这个工作……只是一个有效的例子.
提前致谢.
PS:我为我可怜的英语道歉…
现在跟着一段html:
<input id="search_ctO" class="autoc" type="text" name="search_ct[]"> <input id="search_ct1" class="autoc" type="text" name="search_ct[]"> <input id="search_ct2" class="autoc" type="text" name="search_ct[]"> .... <input id="search_ctn" class="autoc" type="text" name="search_ct[]">
和jquery:
$('.autoc').on("focus",function() $(this).autocomplete({ minLength: 2,source: 'liste_contact.PHP',select: function( event,ui ) { $('.autoc #search_ct').val( ui.item.label ); //id="search_ct'.$i.' $(".autoc #contact_id").val( ui.item.value ); // $("autoc #contact_description").val( ui.item.desc ); return false; },change: function(){ var servi = $("#service_id").val(); var hop = $('#hop').val(); var contact = $("#contact_id" ).val(); $.ajax({ url: 'ajout_contact.PHP',data: "serv="+ servi+"&hopit=" + hop+"&contact="+ contact+"",// on envoie la requete d'ajout de contact success: function() { $("#search_ct").val(''); // location.reload(true); }
解决方法
在不知道确切的HTML和传递给自动完成源的对象数组的情况下,很难准确地编写代码.
但是,您已经询问过多个字段的自动完成工作,所以这里只是一个简单的例子:
HTML
<input id="search_ctO" class="autoc" type="text" name="search_ct[]"/> <input id="search_ct1" class="autoc" type="text" name="search_ct[]"/> <input id="search_ct2" class="autoc" type="text" name="search_ct[]"/> <input id="search_ctn" class="autoc" type="text" name="search_ct[]"/>
JS
var tags = ["abc","def","xyz"]; $('.autoc').on("focus",function(){ $(this).autocomplete({ minLength: 2,source: tags }); });
编辑
你的代码,
$('.autoc').on("focus",function() { $(this).autocomplete({ minLength: 2,ui ) { $('.autoc #search_ct').val( ui.item.label ); $(".autoc #contact_id").val( ui.item.value ); $("autoc #contact_description").val( ui.item.desc ); return false; },change: function() { var servi = $("#service_id").val(); var hop = $('#hop').val(); var contact = $("#contact_id" ).val(); $.ajax({ url: 'ajout_contact.PHP',data: "serv="+servi+"&hopit="+hop+"&contact="+contact+"",success: function() { $("#search_ct").val(''); } }); } }); });