jQuery / UI自动完成但只允许输入现有单词

时间:2010-08-31 14:29:50

标签: jquery jquery-ui autocomplete

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

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

提前谢谢你:)

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

你有类似的问题。芽没有导致使用下拉列表和/或组合框(它不完全支持)我决定使用更改事件选项自动完成,如下所示:

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
});

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