Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.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 选择typeahead后无法更改输入值_Javascript_Jquery_Typeahead.js - Fatal编程技术网

Javascript 选择typeahead后无法更改输入值

Javascript 选择typeahead后无法更改输入值,javascript,jquery,typeahead.js,Javascript,Jquery,Typeahead.js,我在同一页的2个输入中实现了typeahead。一个完美无瑕,但另一个却有着意想不到的行为 我只能使用TypeAhead一次,只要我选择了一个建议,输入字段就会填充正确的值,但我现在无法更改它的值。我会解释: 输入上的每个键事件都会触发js错误: -未捕获的TypeError:undefined不是函数typeahead.js:944 return (str || "").replace(/^\s*/g, "").replace(/\s{2,}/g, " "); 然后,一旦输入失去焦点,修改后

我在同一页的2个输入中实现了typeahead。一个完美无瑕,但另一个却有着意想不到的行为

我只能使用TypeAhead一次,只要我选择了一个建议,输入字段就会填充正确的值,但我现在无法更改它的值。我会解释:

输入上的每个键事件都会触发js错误: -未捕获的TypeError:undefined不是函数typeahead.js:944

return (str || "").replace(/^\s*/g, "").replace(/\s{2,}/g, " ");
然后,一旦输入失去焦点,修改后的值将恢复为typeahead中的选定值

希望下面是我代码的相关部分:

<input type="text" class="form-control text-center number" id="document" name="document" >
<script>
var invoices = new Bloodhound({
    remote : "invoice/listInvoices?action=typeahead&q=%QUERY",
    limit : 15,
    queryTokenizer: Bloodhound.tokenizers.whitespace,
    datumTokenizer : Bloodhound.tokenizers.whitespace("invoice")
});
invoices.initialize();

var invoiceTemplate = Handlebars.compile("<p>{{invoice}} - {{cusName}} - &#36;{{value}}</p>");
$(document).ready(function() {

    $("#document").typeahead({
        minLength : 3,
        hint : false,
        highlight : true
    },{
        items : 15,
        displayKey : "invoice",
        source : invoices.ttAdapter(),
        templates : {
            empty : ["No Matches Found!"].join("\n"),
            suggestion : invoiceTemplate
        }
    });

    $("#document").bind("typeahead:selected", function(e, datum, name) {
        $.ajax(
        {
            url : "invoice/listinvoices.jsp?document=" + datum.invoice,
            success : function(data, textStatus, jqHXR)
            {
                $("#list").html(data);
            }
        });
    });
</script>

我发现了问题。displayKey恰好是Invoice类中的一个int字段。它不起作用了。更改为字符串,所有问题都消失了