仅使用typeahead.js强制有效输入

格贝格罗

我有一些带有twitters typeahead.js(不是旧的bootstrap typeahead)的文本框,用于自动完成来自自定义REST服务的业务数据。如何强制文本框具有有效选择或根本没有文本?我想在提交之前验证表单,但无法访问从服务器获取的预先输入的数据集。

我尝试加入关闭事件,但似乎无法访问数据集进行验证。目前,我仅看到2种可能的解决方案:

  1. 钩住选定的和自动完成的事件,并将最后一个有效值存储在其他隐藏的文本框中,并根据这些值验证texbox。

  2. 或者使用其他的REST调用来验证针对服务器的输入(我试图防止这种情况)

有人有更好的解决方案吗?

马丁·库拉(Martin Currah)

我在寻找类似内容的同时找到了这篇文章。我正在尝试根据提供的预先输入的自动完成数据来确保用户具有有效的选择。这是我的代码。它适用于浏览器验证。

var engine = new Bloodhound({
    datumTokenizer: Bloodhound.tokenizers.obj.whitespace('name'),
    queryTokenizer: Bloodhound.tokenizers.whitespace,
    limit: 10,
    prefetch: {
        url: '/data/professions.json',
        filter: function(list) {
            return $.map(list, function(professions) { return { name: professions }; });
        }
    }
});

// kicks off the loading/processing of `local` and `prefetch`
engine.initialize();

$('#professionsTypeahead').typeahead(null, {
    name: 'professions',
    displayKey: 'name',
    source: engine.ttAdapter()
}).blur(function(){
    match = false
    for (var i = engine.index.datums.length - 1; i >= 0; i--) {
        if($(this).val() == engine.index.datums[i].name){
            match = true;
        }
    }; 
    if(!match){
        alert("Invalid Selection")
    }  
});

在.blur函数上,您可以对照数据集检查是否存在匹配项,如果不匹配,则可以根据自己的喜好进行处理。例如清除文字框等

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用js检查所有输入字段是否有效

使用Java强制转换有效JSON的异常

在Python中使用for循环提示输入有效的输入?

如何使用扫描仪仅接受有效的int作为输入

使用JavaScript进行表单验证,仅其中一项输入有效

使用 ajax 更改输入时,仅第一行有效

仅当输入有效时,如何使用 javascript 验证在表单中显示 CSS 动画

使用粘贴时有效的html输入验证

使用 JavaScript 检查文本输入模式是否有效

如何有效地强制VirtualBox对所有VM文件使用/ dev / shm?

仅当所有其他输入均有效时才验证ah:selectBooleanCheckbox

如何在bash脚本中使用getopts有效测试有效的字符串输入

使用枚举在打字稿中强制使用有效的react道具

1-10 之间的正整数的因数。问题:仅当有效输入大于先前输入时才有效

在某些情况下强制使用long指针是有效的

强制构造函数签名是使用抽象类而不是接口的有效理由吗?

使用rand()强制唯一性的有效方法是什么?

仅使用CSS设置“通话有效”动画

仅使用按位运算的有效方法

将输入限制为仅某些字符在Chrome上有效,但在Firefox上无效

仅当我更改系统语言输入时,语言识别才有效

剃须刀组件中的C#StateHasChanged()不会强制<video>标签加载/更改mp4播放,仅使用javascript似乎有效

如何使用AngularJS检查表中的所有输入是否为ng有效?

当使用变量作为soup.find()的输入时,没有返回,但使用相同的str值作为输入有效

仅接受有效时间

仅默认参数有效

jQuery函数仅每秒有效

js如何使输入有效?

使用隐藏输入是检索外部JavaScript文件中php变量的有效方法吗?