Jquery AutoSugggets多值插件

时间:2011-07-27 06:52:52

标签: jquery-ui jquery-plugins jquery

我正在寻找一些有多个自动建议选项的Jquery插件(示例可以找到here)。我需要在第一个选定的基础上填充第二个值。就像我选择国家作为第一个,第二个自动建议可能是那个城市。有什么好主意吗?一些解决方案与此类似,或者我们如何在Jquery中做到这一点。

先谢谢

2 个答案:

答案 0 :(得分:2)

我需要同样的东西,并没有找到任何无法帮助的jquery插件,所以我提出的解决方案是:

  1. 填充第一个下拉列表。 当用户更改第一个下拉列表的选定默认值时:
  2. 清空其他下拉列表。
  3. 调用ajax方法来检索辅助下拉列表所需的数据。
  4. 使用从ajax方法检索的数据填充辅助下拉列表。
  5. 对其他下拉列表执行相同的操作。
  6. HTML:

     <select id="ddl1" />
     <select id="ddl2" />
    

    JS:

    $("#" + ddl1).change(function () {
        getddl2values(); 
    });
    

答案 1 :(得分:0)

我不知道任何插件。我建议你自己写一下。

  • 使用JS更改处理程序指定n个SELECTbox。
  • 当SELECT更改时,您在其他div中使用X生成“过滤器块”。
  • 单击X时,将SELECT的值重置为0并删除“过滤器块”。
  • 当您更改以前选择的值时,您会按生成的ID找到正确的过滤块,类似于SELECT ID。

我认为这段代码应该很简单。

编辑:我没有阅读整个问题,我的错...在更改某些选择框之后,您应首先生成相关选择框的选项。这取决于您希望如何存储数据。这可以通过在SELECT onchange出现时更改AJAX“成功”上的OPTION来实现。

<强> EDIT2: 您可以在单个框中执行此操作:

<div id="filters"> </div>

<select id="country">
<option></option>
...
</select>

<select id="price">
<option></option>
...
</select>

然后你在jQuery中编写事件处理程序:

$(function(){
  $("select").change(function(){
    var id = $(this).attr("id");
    if($(this).val()==0){ // if you choose default/zero value
      $("#filter-"+id+).remove();
    }
    else if($("#"+id+"-filter").length > 0){ // if you only update value
       $("#filter-"+id).html($(this).val()+'<span>X</span>');
    } else { // add filter box
      $("#filters").append('<div id="#filter-'+id+'">'+$(this).val()+'<span>X</span></div>');
    }
  });
  $("#filters > div > span").live("click", function(){
    var select_id = $(this).attr('id').substring(7);
    $("#".select_id).val(0);
    $(this).parent().remove();
  });
});

我匆匆写了这篇文章,但如果你知道如何用jQuery编写,即使我犯了一些错误,你也应该明白这一点。