【发布时间】:2013-08-16 13:49:14
【问题描述】:
我已将我的 Knockout 绑定设置为具有按键事件,因为我希望检测输入字段上的 Enter 键事件。它只在某些时候工作正常,而不是在所有时间。
代码:
<input name="" id="txtSearch" placeholder="" value="" type="search" data-bind="event: { keypress: $root.SendMsg }" />
视图模型:
self.SendMsg = function (data, event) {
try {
if (event.which == 13) {
var SearchText = $("#txtSearch").val();
$(".divLoading").show();
$.ajax({
url: 'http://localhost/api/contacts/search',
type: 'GET',
dataType: 'jsonp',
data: { Text: SearchText },
context: this,
success: function (result) {
self.Contacts(result);
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
$(".divLoading").hide();
alert(errorThrown);
},
complete: function () {
$('#ListSearch').listview('refresh');
}
});
return false;
}
return true;
}
catch (e)
{
alert(e);
}
}
};
数据成功来自 api,但文本输入有时有效,有时无效。如果我们刷新页面,那么它工作正常。我不知道为什么。请朋友们帮帮我
【问题讨论】:
-
我不能确切地告诉你为什么它对你来说可能变得古怪,但我建议你为 enter press 创建一个自定义绑定处理程序以触发一个事件,并单独调试该事件。要设置绑定处理程序,请检查这个问题 - stackoverflow.com/questions/15258367/…
-
是否可以重新订购此代码并使其正常工作?
-
我将尝试为您的问题发布答案,但请注意,我不使用 jQuery mobile,因此我无法确保代码可以为您编译,您可能需要调整它。
-
好了,我的回答已经完成了,应该可以满足你的需求...
-
我添加了你的代码。但它停止了其他工作..它显示以下错误“未捕获的语法错误:输入意外结束”..为什么会出现?我可以知道原因吗?如何解决这个问题?
标签: jquery-mobile knockout.js single-page-application