【问题标题】:Jquery-ui autocomplete multiple instancesjquery-ui 自动补全多个实例
【发布时间】:2010-10-22 07:49:32
【问题描述】:

您好,我在一个页面上运行了多个 jQuery-UI 自动完成实例。

<div id="div1">
<input name= "city[1]" class= "city" id="city1" />
<select name = "select1" class = "zipcodes" id = "zipcodes1"></select>
</div>

<div id="div2">
<input name= "city[2]" class= "city" id="city2" />
<select name = "select2" class = "zipcodes" id = "zipcodes2"></select>
</div>

这些字段由 javascript 添加。自动完成功能适用于输入。回调填充邮政编码字段选项。

 select: function( event, ui ) {
    $($(".city").sibling("zipcodes")).empty();
    $.each(ui.item.zip, function(Index, Value){
         // Populate the zipcodes fields
        });
        }

问题在于它填充了页面上的所有邮政编码字段

我尝试过使用

(".city").autocomplete( "widget" )

选择正在查询的特定自动完成,但它仍会填充所有字段。

如何识别正在查询的特定字段?

【问题讨论】:

    标签: jquery autocomplete jquery-ui


    【解决方案1】:

    试试:

    select: function( event, ui ) {
        $(this).sibling(".zipcodes").empty();
    
           $.each(ui.item.zip, function(Index, Value){
             // Populate the zipcodes fields
               $(this).sibling(".zipcodes") .......
            });
            }
    

    【讨论】:

    • 这会导致整个回调中断 - 没有填充任何字段
    • 好的,静默失败是因为填充选择框的函数在另一个回调中,因此“$(this)”不在正确的上下文中。将 $(this) 分配给变量解决了静默失败。切换到 $(this) 终于奏效了。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-25
    相关资源
    最近更新 更多