javascript - 提前选择后无法更改输入值

标签 javascript jquery typeahead.js

我已经在同一页面的 2 个输入中实现了 typeahead。一个工作完美,但另一个有意想不到的行为。

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

输入上的每个按键事件都会引发 js 错误: - 未捕获的类型错误:未定义不是函数 typeahead.js:944

return (str || "").replace(/^\s*/g, "").replace(/\s{2,}/g, " ");

然后,一旦输入失去焦点,修改后的值就会恢复为预先输入时选择的值。

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

<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 字段。它不起作用。改为String,所有问题都消失了!

关于javascript - 提前选择后无法更改输入值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23245595/

相关文章:

php - Jquery 表单插件

javascript - 将所有图像路径推送到整个网站的数组中

php - Twitter Typeahead 标签从 MySQL 获取数据

javascript - 将 Knockout 与 Typeahead.js 和 Bloodhound.js v0.10 结合使用

javascript - 对每个性能问题进行数组比较

javascript - 如何获取 Knockout.js 向导中单选按钮选项的值?

javascript - 如何检查 Jquery UI 对话框中的复选框值

javascript - jQuery - 如何调整 CSS 过滤器(模糊)?

javascript - 从 dynamodb 检索文档的异步代码永远不会执行

javascript - Typeahead.js 和图像缩略图