Apache Cordova App -使用Javascript innerHTML更新内容

Apache Cordova App - update content using Javascript innerHTML

本文关键字:innerHTML 更新 新内容 Javascript 使用 Cordova App Apache      更新时间:2023-09-26

我是第一次在Visual Studio 2015 Enterprise上使用Apache Cordova创建一个应用程序。

该应用程序是一个简单的时间表检查器,用户根据全名和出生日期登录,然后显示他们的正确时间表。

我使用innerHTML来改变索引页(div displayDiv要精确)对应于变量,I使0 =登录页,1 =显示周期页,2 =显示完整时间表页

问题是我无法理解变量I如何在每次innerHTML更改时不断初始化。

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>TimetableTest1</title>
</head>
<body>
    <script src="scripts/platformOverrides.js"></script>
    <script src="scripts/index.js"></script> 
    <script src="scripts/validateUser.js"></script>
    <div id="displayDiv"></div>
<script type="text/javascript">
    function changeContent(func) {
        var oldOnLoad = window.onload;
        if (typeof window.onload != 'function') { 
            window.onload = func
        } else {
            window.onload = function (i) {
                oldOnLoad(i);
                func(); 
            }
        }
    }
    changeContent(function(){
        var i; 
        if (i == undefined && window.onload!='function') {
            i = 0; 
        }
        var display = new Array();
        display[0] = '<h2>VCB TIMETABLE APP</h2><h3>Please enter your full name and date of birth to find out where your next class is</h3><form name="myForm" onsubmit="validateForm();"><input type="text" maxlength="35" id="name"placeholder="Full name" /><br /><input type="text" maxlength="35" id="dob"placeholder="DD/MM/YYYY" /><br /><input type="submit" id="submit" name="submit" value="Log me in!" /><br /><input type="reset" name="Reset" /></form>'
        display[1] = '<h2>Where do I go?</h2>'
        display[2] = '<h2>Your full timetable</h2>'
        displayDiv.innerHTML = display[i];
        alert("changeContent final i = " + i);
    });
 </script>
</body>
</html>

validateUser.js

function validateForm() {
    var nameStr = document.getElementById("name").value;
    var dobStr = document.getElementById("dob").value;
    if (nameStr == null || nameStr == "" || dobStr == null || dobStr == "") {
        alert("Name and DOB must be filled in");
    } else {
        i = 1;
        validateUser(nameStr, dobStr, i)
    }
}
function validateUser(nameStr, dobStr, i) {
    nameStr = nameStr.toUpperCase();
        alert("Hello " + nameStr + "'n validateUser content i: " + i);

任何帮助都将不胜感激

感谢

清伦

您应该将声明var i;移出函数。

在你的代码中,每次你执行改变内容的函数,i被声明,但没有初始化,所以它的值是undefined

因此,条件i == undefined为真。

我找到解决办法了!

问题是提交按钮…

我将其更改为"button",并简单地调用validateForm()与onclick