【发布时间】:2015-04-23 22:48:37
【问题描述】:
感谢 SO 中列出的精彩建议,我能够提前破解一个类型,该类型将在选择时更新表格。我需要做的最后一步是在选择时/期间/之后清除文本框。我已经尝试在表 onchange 事件中添加东西,拦截 select 事件等。似乎没有任何效果。我可以在这里找到的唯一其他参考没有答案。有自动完成的响应,但我似乎也无法适应它们。任何帮助将不胜感激。
$(document).ready(function () {
var ds = [
@if (ViewData.ModelState.IsValid)
{
var index = 0;
foreach (var person in Model)
{
var jaUser = "{ name: \" " + person.UserName + "\", mobi: \"" + person.MobilePhone + "\" }";
if (index > 0) { jaUser = ',' + jaUser; }
@Html.Raw(jaUser)
index++;
}
}
];
var d = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('name'),
queryTokenizer: Bloodhound.tokenizers.whitespace,
local: ds
});
d.initialize();
$('#contactSearch').typeahead(
{
hint: true,
highlight: true,
minLength: 1,
},
{
name: 'd',
displayKey: 'name',
source: d.ttAdapter(),
templates: {
empty: 'not found', //optional
suggestion: function (el) {
return "<span onclick=\"addUser2list('" + el.name + "');\"><img src='" + el.mobi + "' />" + el.name + "</span>"
}
}
}
);
});
function addUser2list(mobnum){
if (mobnum.length > 0){
row = $("<tr></tr>");
col1 = $("<td>col1</td>");
col2 = $("<td>"+ mobnum +"</td>");
col3 = $("<td>col3</td>");
row.append(col1, col2, col3).prependTo("#mytable");
//$('#contactSearch').val('');
}
}
示例 - 您在文本框中键入“da”,下拉列表中出现 3 个名称,您选择 1 并将其添加到上表中。一旦发生这种情况,我需要清除文本框,目前它显示您选择的名称,您必须手动删除它。由于某些未知原因,jsfiddle 没有更新表格,但在我的本地代码中它工作正常,我只需要知道如何自动清除“contactSearch”框。
【问题讨论】:
-
你能在jsfiddle.net上创建一个演示吗?
-
实际试过了,在jsfiddle上不行。我发誓它适用于我的应用程序 :-( jsfiddle.net/0xs63enb
-
其实这个问题不是很清楚(可能对我来说)但是你能在问题中添加一个例子吗?
-
希望我刚刚所做的编辑能澄清一点
标签: jquery typeahead.js