我正在使用Cordova / PhoneGap 2.5.0,Knockout 2.1.0和jQuery Mobile 1.3.0创建一个Android应用程序。
我创建了一个类型为“number”的输入,这个输入是数据绑定,其值为Knockout。它也是一个重要的新闻事件。我打算抓住用户按输入键。
<input type="number" data-bind="value: $root.myInputValue, event: { keypress: $root.myInputKeypress }" min="0" step="1" max="29">
self.myInputKeypress = function() {
var keyCode = (event.which ? event.which : event.keyCode);
alert(keyCode);
if (keyCode === 13) {
//Do work here
return false;
}
return true;
};
当我按下允许的键(例如数字)时,代码按预期运行,并且按下的键代码会被警告。当我在键盘上按输入时没有任何反应,似乎Android正在抑制它认为不相关的键的事件。
有没有办法改变这种行为,以便我可以捕获用户点击输入?
答案 0 :(得分:1)
如果您使用 Ionic / Angular
<input ng-keypressed="myKeyPressed($event)" ng-model="myField">
self.myKeyPressed = function(keyEvent) {
if(keyEvent.keyCode == 13) //do things
}
答案 1 :(得分:0)
尝试这可以在你的情况下使用jquery mobile
$('.ui-input-text').live('keyup', function(event) {
if (event.keyCode == 13) {
// 'Go' pressed do something
}});
答案 2 :(得分:0)
hi将您的文本框放在表单标记
中 <form id="Articleform" name="Article">
<input type="number" data-bind="value: $root.myInputValue, event: { keypress: $root.myInputKeypress }" min="0" step="1" max="29">
</form>
并添加事件表单提交标记
$(document).ready(function () {
$("#Articleform").on('submit', function (event) {
alert("enter");
return false;
});
当你点击go alert是打开的
答案 3 :(得分:0)
我有同样的问题,问题是数字字段输入的键码在我的设备上是9,在模拟器上是13。
这对我有用:
$('.ui-input-text').live('keyup', function(event) {
if (event.keyCode == 9) {
// 'Go' pressed do something
}});