代码之家  ›  专栏  ›  技术社区  ›  Jakub

jquery/ui自动完成,但只允许键入现有单词

  •  4
  • Jakub  · 技术社区  · 14 年前

    希望我能正确地解释这一点,我有一个长长的预定义项目列表(数据库中的产品),我希望用户能够键入并自动完成一个产品,但是如果该产品/单词不在列表中,我不希望键入其他字符。因此,如果列表中不存在该输入,则自动完成会理想地阻止其他输入。

    当前jquery ui/jquery插件是否存在类似的内容?还是有mods?我希望使用此方法加快产品选择,但如果有人键入其他内容,则不会返回“未找到”页面。

    事先谢谢:)

    2 回复  |  直到 12 年前
        1
  •  1
  •   Robert Harvey Isaac Blanco    14 年前

    This AutoComplete plugin 有一个函数,允许您测试该值以确保它在列表中。

        2
  •  0
  •   racl101    12 年前

    嗨也有类似的问题。Bud没有使用下拉框和或组合框(这是不完全支持的),我决定对自动完成使用ChangeEvent选项,如下所示:

    jQuery('#field').autocomplete ({
      ...
      source: listOfValues,   // assuming an array like this ['val1', 'val2', val3' ... ]
      change: function (event, ui) {
         // check if entered value exists
         var entered_valid_input = false;   // false until proven true
         jQuery.each(listOfValues, function(i,v) {
           if(jQuery('#field').val() == v) {
             entered_valid_input = true;
             return false;   // stop iterating
           }
    
         });
         if(!entered_valid_input) {
            // blank the field
            jQuery('#field').val("");
            return;    // exit callback. No further processing
         }
    
      },
      ...
      // further processing if the input is valid
    });
    

    似乎对我很有用。即使这不是最优雅的解决方案。