首页 > 解决方案 > 打字头如何只允许列出值,否则会发出警报?

问题描述

我正在使用 typeahead.js 0.9.3,是否可能 typehead 只允许列表中的项目而不是用户输入的手动文本。它不允许用户这样做或在任何事件之后检查该值是否存在于列表中。

$(document).ready(function(){
  $('input.typeahead').typeahead({
    name: 'typeahead',
    remote:'sale/files/search_part.php?key=%QUERY',
    limit : 10
  });
});

我不擅长 javascript 和 JQuery,所以不知道如何将数组值设置为列表,所以下面的代码可以检查它是否存在于列表中。请帮忙

var myData = [...]; // how to assign output list to this array?

$("#partno").typeahead({source : myData}).blur(validateSelection);

function validateSelection() {
  if(source.indexOf($(this).val()) === -1) {
    alert('Error : element not in list!');
  }
}

输入栏

<input type="text" name="typeahead" class="typeahead tt-query" autocomplete="off" spellcheck="false"  id="partno" >

标签: javascriptjquerytypehead

解决方案


将输出列表分配给 myData

$(document).ready(function() {
var myData = [];
$.ajax({
    url : url_example.php,
    data:{
        condition : 'text'
    },
    dataType:'json',
    method:'POST',
    success:function(result){
        myData = result.data
    },error: function (XMLHttpRequest, textStatus, errorThrown) {
        console.log('error!');
    }
})

});

你可以在这里阅读更多 http://api.jquery.com/jquery.ajax/


推荐阅读