電話ギャッププロジェクトの戻るボタン機能を変更する必要がありますが、問題なく実行できました。現在の唯一の問題は、ユーザーが特定のフィールドを選択しているかどうかに基づいて、機能をさらに変更する必要があることです。
基本的に、ユーザーが「date-selector1」のIDを持つフィールドをクリックした場合、戻るボタンを完全に無効にする必要があります。
document.activeElementを使おうとしましたが、要素のタイプ(この場合はinput)のみが返されますが、一般的な入力にある場合でも機能が機能するようにしたいのですが、特定のID。
編集 私は以下のすべての提案を試しましたが、次のコードになりましたが、それでも成功しませんでした。
function pluginDeviceReady() {
document.addEventListener("backbutton", onBackKeyDown, false);
}
function onBackKeyDown() {
var sElement = document.activeElement;
var isBadElement = false;
var eList = ['procedure-date', 'immunization-date', 'lab-test-done', 'condition-onset', 'condition-resolution', 'medication-start-date', 'medication-stop-date', 'reaction-date'];
console.log("[[ACTIVE ELEMENT: --> " + document.activeElement + "]]");
for (var i = 0;i < eList.length - 1;i++) {
if (sElement == $(eList[i])[0]) {
isBadElement = true;
}
}
if (isBadElement) {
console.log('Back button not allowed here');
} else if ($.mobile.activePage.is('#main') || $.mobile.activePage.is('#family') || $.mobile.activePage.is('#login')) {
navigator.app.exitApp();
} else {
navigator.app.backHistory();
}
}