我需要一个输入(type ='text')来将结果发送到我的服务器,以检查用户输入的内容的可用性。jquery mobile - 移动设备上的keyup keyyd
我用的是委托给事件处理程序添加到的元素:
$(document).delegate('#signup', 'pageshow', function() {
var keydown = function(e) {
e = e || window.event;
var char = e.which || e.keyCode;
if (char == 8) {
$(".pagemessage").text("Pressed: '<BACKSPACE>'");
appcheckDomainOnKeyDown();
}
return true;
};
var keyup = function(e) {
e = e || window.event;
var char = e.which || e.keyCode;
if (char == 8) {
appcheckDomainOnKeyUp();
}
return true;
};
var keypress = function(e) {
e = e || window.event;
var char = e.which || e.keyCode;
var str = String.fromCharCode(char);
$(".pagemessage").text("Pressed: '" + str +"'");
if (/[a-zA-Z0-9-\._]/.test(str) || char == 8 || char == 9) {
appcheckDomainOnKeyDown();
appcheckDomainOnKeyUp();
return true;
}
return false;
};
关键左撇子我的桌面上,而不是在移动设备上正常工作。希望你可以看到我试图让某些字符进入框(和退格删除字符。
从事实上我看不到pagemessage元素更新,'按键'似乎并没有被困住。我试图在keyup/keydown中处理这个问题,但我不知道如何应用shiftKey位来获取实际的字符 - 例如,按+ 5会给出'%',但是在keydown中会返回shiftKey和5.
我阅读文档,我可以找到“按键”最接近的是“自来水”事件,但没有任何工作。
我试图诱捕“按键”事件作为一个后建议在这里,和在桌面上这不会陷入退格,并且在移动设备上什么也不做。
我又试图以此作为建议在另一篇文章:
var inputEV = 'oninput' in window ? 'input' : 'keyup';
$("#new_domain").off(inputEV);
$("#new_domain").on(inputEV, function (e) {
keydown(e);
keyup(e);
});
,并没有在任何桌面浏览器或移动设备的工作。
然后我尝试改变输入类型为'搜索',我得到了一个很好的增强,按键不会增加一个清晰的按钮......但在移动设备上没有任何关于我自己的功能。
我想我已经跑出来的东西去尝试,留下的唯一一件事就是添加一个按钮去检查 - 没有人愿意说:)
任何人都知道我该怎么做我需要什么?
如果它是相关的,我使用的是镀铬我的台式机和Android设备上(HTC一个,和Nexus 5)
我只是udated应用程序打印的东西到一个div以及是似乎是(e.which || e.keyCode)始终是零上我的设备。还有什么其他选择。我的问题似乎源于想要不允许某些字符。 'keypress'不被支持,但正确的地方...我可能不得不添加一个键盘触发器来检查输入框的最后一个值,如果它是无效的,将其删除....用户将看到: –