Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jquery ui自动完成多个输入字段_Javascript_Php_Jquery_Autocomplete - Fatal编程技术网

Javascript 使用jquery ui自动完成多个输入字段

Javascript 使用jquery ui自动完成多个输入字段,javascript,php,jquery,autocomplete,Javascript,Php,Jquery,Autocomplete,大家下午好 我花了很多时间,阅读了stackoverflow上的所有帖子。。。而且我无法使autocomplete与multilpe输入字段一起工作。 我试图为每个输入指定一个“autoc”类,我为每个字段使用不同的id(实际上是php循环生成字段的inedx)。 我不要求别人为我做这项工作。。。。这只是一个有效的例子 提前谢谢 PS:我为我糟糕的英语道歉 下面是一段html: <input id="search_ctO" class="autoc" type="text" nam

大家下午好

我花了很多时间,阅读了stackoverflow上的所有帖子。。。而且我无法使autocomplete与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[]">

如果不知道传递给
autocomplete
源代码的确切HTML和对象数组,就很难准确编写代码

但是,您已经询问了对多个字段使用
autocomplete
,因此这里只是一个简单的示例:

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[]"/>

若你们想在回答中包含任何其他内容,请随时发表评论

编辑

你的代码

$('.autoc').on("focus", function() {
    $(this).autocomplete({
        minLength: 2,
        source: 'liste_contact.php',
        select: function( event, 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('');        
                }
            });
        }
    });
});

事实上,自动完成的下拉列表运行良好。。。我的问题是“如何重新映射所选项目”。。。对不起,我的需求表达不正确。你应该为此写一个相应的问题。你们应该告诉我们你们到底在哪里面对问题,即使是非常微小的问题。因此,请明确说明您希望对所选项目执行什么操作。此外,代码中还存在语法错误。如果不是错别字,请先更正。我为迟来的复出道歉。。。按照你的建议更正我的代码,使这些东西工作起来很有魅力。谢谢。您认为发布工作代码和注释有用吗?如果是的话,怎么做(我是一个stackoverflow neebie)一般来说,如果你的问题得到了答案,这是一个回答你自己的问题并将其标记为接受答案的一般方式。由于您的代码中存在语法错误,我将在这里添加代码本身,如果您愿意,可以将其标记为已接受或创建自己的正确答案。这将有助于其他读者了解本文中的解决方案。@j809我喜欢类定义。我要去工作。我想添加一个selection语句,以确定哪个字段正在调用autocomplete jquery函数。我该怎么做?
var tags = ["abc","def","xyz"];
$('.autoc').on("focus", function(){
      $(this).autocomplete({
       minLength: 2,
       source: tags
        });
});
$('.autoc').on("focus", function() {
    $(this).autocomplete({
        minLength: 2,
        source: 'liste_contact.php',
        select: function( event, 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('');        
                }
            });
        }
    });
});