编程语言
首页 > 编程语言> > javascript-Phonegap-确定确切的元素处于活动状态

javascript-Phonegap-确定确切的元素处于活动状态

作者:互联网

我需要更改我的phonegap项目的后退按钮功能,而我已经成功完成了该操作,没有任何问题.现在唯一的问题是,我需要根据用户是否选择了某个字段来进一步更改功能.

基本上,如果用户单击ID为“ date-selector1”的字段,则需要完全禁用后退按钮.

我试图使用document.activeElement,但是它只返回元素的类型(在这种情况下为输入),但是我仍然希望功能在常规输入中时起作用,而不是在常规输入中时起作用.一个特定的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();
    }
}

解决方法:

如果您正在监听后退按钮,则可以添加以下if语句:

if (document.activeElement == $("#date-selector1")[0]) { 
    /*disable button here, return false etc...*/ 
}

甚至更好(感谢乔纳森·桑普森)

if (document.activeElement.id === "date-selector1") { 
    /*disable button here, return false etc...*/ 
}

标签:html5,cordova,jquery-mobile,javascript,jquery
来源: https://codeday.me/bug/20191201/2079243.html