【问题标题】:Jquery AutoSugggets Plugin for Multiple Values用于多个值的 Jquery AutoSugggets 插件
【发布时间】:2011-07-27 06:52:52
【问题描述】:

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

提前致谢

【问题讨论】:

    标签: jquery-ui jquery-plugins jquery


    【解决方案1】:

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

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

    HTML:

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

    JS:

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

    【讨论】:

      【解决方案2】:

      我不知道任何插件。我建议自己写这个。

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

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

      编辑:我没有读完整个问题,我的错……在你改变了一些选择框之后,你应该首先生成依赖选择框的选项。这取决于您希望如何存储数据。这可以通过更改 SELECT onchange 出现时调用的 AJAX "success" 上的 OPTION 来实现。

      编辑2: 你可以在一个盒子里做:

      <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 编写,即使我犯了一些错误,你也应该明白这一点。

      【讨论】:

      • 感谢您的回复。但问题是我想在一个单独的框中完成它,就像我在我的问题中的示例链接一样,而不使用选择列表。
      • 这是您要找的吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-10
      • 1970-01-01
      • 1970-01-01
      • 2013-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多