我需要一個輸入(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'不被支持,但正確的地方...我可能不得不添加一個鍵盤觸發器來檢查輸入框的最後一個值,如果它是無效的,將其刪除....用戶將看到: –