Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 每次按第一个键时,我怎样才能提前打字_Javascript_Jquery_Json_Onkeyup_Typeahead - Fatal编程技术网

Javascript 每次按第一个键时,我怎样才能提前打字

Javascript 每次按第一个键时,我怎样才能提前打字,javascript,jquery,json,onkeyup,typeahead,Javascript,Jquery,Json,Onkeyup,Typeahead,我有一个typeAhead函数(使用库),当我键入第一个字母时,它会加载一组json文件 这些json文件名为“words_a.json”、“words_b.json”等。它们包含以字母a、b、C等开头的每个荷兰语单词 我面临的问题是: 1) 只要我在“#搜索框”中键入第一个字符,输入字段上的焦点就会丢失。这是由于“”函数造成的。有没有办法防止这种情况 2) 我无法使用“”,因为这将调用包含您键入的每个字符的json文件。我只想为第一个字符调用json文件。它应该加载以该字符开头的所有单词 3)

我有一个typeAhead函数(使用库),当我键入第一个字母时,它会加载一组json文件

这些json文件名为“words_a.json”、“words_b.json”等。它们包含以字母a、b、C等开头的每个荷兰语单词

我面临的问题是:

1) 只要我在“#搜索框”中键入第一个字符,输入字段上的焦点就会丢失。这是由于“”函数造成的。有没有办法防止这种情况

2) 我无法使用“”,因为这将调用包含您键入的每个字符的json文件。我只想为第一个字符调用json文件。它应该加载以该字符开头的所有单词

3) “jquery.one()”的另一个缺点是,一旦找到要查找的单词,我就会开始搜索新单词。所以我删除了输入字段中的每个字符。但是,它不会为您键入的第一个字符加载另一个json文件,因为“jquery.one()”已经触发过一次,并且已经加载了一个json文件。有没有办法避免这种行为,并在从输入字段中删除所有字符后再次启动该函数

这是我的密码:

<script>
        $(document).ready(function() {

                $('#search-box').one('keyup', function() {
                    var character = $('#search-box').val().substring(0, 1);
                    var chr = character.toLowerCase();
                    //console.log(chr);

                    $.getJSON('words/words_' + chr + '.json', function(wordsArray){
                        //console.log(wordsArray);
                        $('#search-box').typeahead({
                        name: 'words',
                        //local: [],
                        local: wordsArray,
                        limit: 10
                        }); // close typeAhead function
                    }); // close getJSON
                }); // close search-box keyup function

            $('#search-box').bind('typeahead:selected', function(obj, value) {
                //console.log(value.value);
                $('#resultaten').append('<a href="#" onClick="speak(&quot;'+value.value+'&quot;, &quot;nl&quot;)">' + value.value + '\
        &nbsp;<img src="img/speaker.png" alt="speaker"/></a><br />');

            }); //close typeahead selected selected function
            $('#search-box').typeahead().destroy();
        }); // close document.ready
</script>


<form class="form-search">
     <h2 class="form-search-heading">Zoek in OpenTaal woordenlijst</h2>
     <input type="text" class="input-block-level" placeholder="Zoekterm" id="search-box">
     <div id="resultaten"></div>
</form>

$(文档).ready(函数(){
$(“#搜索框”).one('keyup',function(){
var character=$(“#搜索框”).val().substring(0,1);
var chr=character.toLowerCase();
//控制台日志(chr);
$.getJSON('words/words_'+chr+'.json',函数(wordsArray){
//console.log(wordsArray);
$(“#搜索框”)。提前键入({
姓名:'单词',
//本地:[],
当地:wordsArray,
限额:10
});//关闭typeAhead函数
});//关闭getJSON
});//关闭搜索框键控功能
$(“#搜索框”).bind('typeahead:selected',函数(obj,value){
//console.log(value.value);
$('#resultaten')。追加('
'); });//提前关闭所选函数 $(“#搜索框”).typeahead().destroy(); }); // 关闭文档。准备好了吗 乌尔登利斯特的佐克酒店
您可能想看看这个:

它有一个JSON列表,并且使用一个按键。但是,如果只针对第一个字符,那么提前输入又有什么好处呢?说这些是名字,你有10个“史密斯”?您可能需要键入“Smith”,以获取第一个

在任何情况下,您都可以添加一个“if”语句来计算文本框中值的长度。例如,如果
$(this).val().length>1
,则不执行任何操作<代码>否则,您继续您的支票