当我用HTML格式写一些东西时,我正试图得到一些建议。
因此,当在该表单上触发onkeypress
和onkeyup
事件时,我会调用JS函数。在JS函数中,我使用HTTP请求对象并从PHP文件中获取数据。
这是一个小片段,用于说明我在做什么。
HTML code:
<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运行文件
答案 0 :(得分:0)
如果调用了checkusername函数但没有响应,则问题必须来自您的Ajax调用。
我建议你仔细查看每一行的ur函数代码,因为它们区分大小写,尤其是xhttp部分。检查w3school是否有正确的语法。
可替换地;使用if(xhttp.statusText ===&#39; OK&#39;)如果假设(xmlhttp.readyState == 4&amp;&amp; xmlhttp.status == 200)。您还可以在ur代码中添加console.log()消息,以了解代码中断的位置。
希望这有帮助