Javascript onkeyup 事件仅适用于 Chrome 时间计算器

标签 javascript cross-browser dom-events onkeyup

 <script>
    function numeri_validator(t) {
        var patt = /(\d*)\.{1}(\d{0,2})/;
        var donepatt = /^(\d*)\.{1}(\d{2})$/;
        var str = t.value;
        var result;
        if (!str.match(donepatt)) {
            result = str.match(patt);
            if (result != null) {
                t.value = t.value.replace(/[^\d]/gi, '');
                str = result[1] + '.' + result[2];
                t.value = str;
            } else {
                if (t.value.match(/[^\d]/gi))
                    t.value = t.value.replace(/[^\d]/gi, '');
            }
        }



       //get the date
            var val1 = document.getElementById("cost" + 1).value;
            var val2 = document.getElementById("cost" + 2).value;

       //Get date
            var date = document.getElementById("Label1").innerText;

        //format time
            var timeIn = val1.replace('.', ':');
            var timeOut = val2.replace('.', ':');

        //Concat time with date
            var timeinDate = date + " " + timeIn;
            var timeoutDate = date + " " + timeOut;

        //calculate time difference
            var nDifference = Math.abs(new Date(timeoutDate) - new Date(timeinDate));

            var one_hours = 1000 * 60 * 60;
            var hours = (Math.floor(nDifference / one_hours));

            var diff = nDifference % one_hours;

            var one_min = 1000 * 60;

            var diffmin = Math.round(diff / one_min);

            document.getElementById("datelabel").innerText = hours + "." + diffmin;

            document.getElementById("total").value = hours + "." + diffmin;

这个计算两次时间之差的函数工作正常,但仅在其他浏览器中的 Chrome 中工作:

document.getElementById("total").value=NaN:NaN

请帮助我。

最佳答案

问题应该是由于代码中的这一部分引起的。 .innerText.

var date = document.getElementById("Label1").innerText;

.innerText 在 Mozilla 中不起作用。使用 .textContent 代替

var date = document.getElementById("Label1").textContent;

关于Javascript onkeyup 事件仅适用于 Chrome 时间计算器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19448711/

相关文章:

angularjs - 关键帧不适用于 Firefox 或 Safari 中的 AngularJS 动态添加的类

javascript - Firefox(可能还有其他浏览器)上的 InvalidCharacterError

javascript - 警告不支持新 CSS3 标准的旧浏览器的用户

javascript - 以 Angular 方式将事件传递给triggerHandler

javascript - 如何在 AMX 页面加载时调用 Javascript 函数?

java - 在jsp页面中显示特殊字符

javascript - 如何在 JavaScript 的构造函数中定义对象的原型(prototype)?

javascript - 如何在html值更改后运行函数

javascript - AngularJS - 处理现有 DOM 元素上的点击事件

javascript - HTML5 视频 : Hiding controls does not work in internet explorer, removeAttr、removeProp 等