无法在键入选择之后更改输入值
我在同一页面中的2个输入中实现了键入。 一个完美的作品,但另一个有一个意想不到的行为。
我只能使用TypeAhead一次,并且一旦我选择了一个建议,输入字段就会填充正确的值,但我现在无法更改它的值。 我会解释一下:
输入上的每个关键事件都会触发js错误: - 未捕获的TypeError:未定义不是函数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}} - ${{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字段。 它不工作。 更改为字符串,所有问题都消失了!
链接地址: http://www.djcxy.com/p/68453.html