当我用HTML格式写东西时,我试图得到一些建议。
因此,当表单上触发onkeypress
和onkeyup
事件时,我会调用JS函数。在JS函数中,我使用HTTP请求对象并从PHP文件中获取数据。
这里有一个小片段来介绍我正在做的事情。
HTML代码:
<form class="login" onsubmit="return isvalidated()" action="asd.php" method="post">
<input id="userID" type="text" onkeypress="checkusername()" onkeyup="checkusername()" onblur="usercheckLv()" placeholder="username" name="user"><br><span class="errors" id="usererror"></span><br>
<input id="passwordID" type="password" onblur="passwordcheckLv()" placeholder="password" name="password"><br><span class="errors" id="passworderror"></span><br>
<input type="submit" value="Login">
</form>
<script src="js/index.js"></script>
JavaScipt代码:
function checkusername(){
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("usererror").innerHTML = xmlhttp.responseText;
}
xmlhttp.open("GET", "xx.php", true);
xmlhttp.send();
}
}
PHP文件xx.PHP:
<?php
echo "fgfwegfdg";
?>
我的HTML文件位于名为taxi
的文件夹中,index.js
和xx.php
位于taxi/js
文件夹中。
所有其他函数usercheckLv()
passwordcheckLv()
isvalidated()
都在index.js
文件中,并且所有这些函数都正常工作。正在调用checkusername()
(我已经调试过了)。
但是checkusername()
中的内部函数不起作用。
请帮忙。提前谢谢。
注意:我在Ubuntu 中通过localhost运行文件
如果正在调用checkusername函数,但没有响应whatsover,那么问题一定来自Ajax调用。
我建议您仔细阅读ur函数代码的每一行,因为它们区分大小写,尤其是其中的xhttp部分。请查看w3school以获取正确的语法。
或者;使用if(xhttp.statusText=='OK')作为假定if(xmlhttp.readyState==4&&xmlhttp.status==200)。您还可以在代码中添加console.log()消息,以了解代码的中断位置。
希望这能帮助