onKeyUp不工作?也许是糟糕的ajax代码

onKeyUp not working? maybe it's bad ajax code?

本文关键字:ajax 代码 工作 也许 onKeyUp      更新时间:2023-09-26

我正在学习AJAX,下面的HTML文件不工作。每次我释放一个键,firebug就会说"login不是一个函数"。我不明白为什么会这样。如有任何帮助,不胜感激。

<html>
<head>
<title>Ajax</title>
<script type="text/javascript">
function makeAjax() {
    var ajax;
    try{
        ajax = new XMLHttpRequest();
    }
    catch (e) {
        try {
            ajax = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e) {
            try {
                ajax = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch (e) {
                alert("Your browser is either OLD or BAD! UPDATE!");
                return false;
            }
        }
    }
    ajax.onreadystatechange = function() {
        if(ajax.readyState == 4 && ajax.status == 200) {
            document.getElementById("btag").innerHTML = ajax.responseText;
        }
    }
}
function login() {
    ajax.open("GET", "ajax.php", true);
    ajax.send(null); 
}
</script>
</head>
<body onLoad="makeAjax();">
<form name="login">
Username: <input type="text" onKeyUp="login();" />
<br /><br />
Password: <input type="password" onKeyUp="login();" />
<b id="btag"></b>
</form>
</body>
</html>

onKeyUp="login();"似乎正在寻找您的形式(也称为login)。将表单重命名为不同的东西(例如login_form)对我来说很有效。

尝试使用不同的表单名称。你有一个名为"login"的表单和一个名为login的Javascript函数。我想firebug把这两者搞混了……

同样,将Ajax变量放在函数之外,即。

var ajax;
function makeAjax() {
    try{
        ajax = new XMLHttpRequest();
    }
    catch (e) {
        try {
            ajax = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e) {
            try {
                ajax = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch (e) {
                alert("Your browser is either OLD or BAD! UPDATE!");
                return false;
            }
        }
    }
    ajax.onreadystatechange = function() {
        if(ajax.readyState == 4 && ajax.status == 200) {
            document.getElementById("btag").innerHTML = ajax.responseText;
        }
    }
}