javascript - 页面提交状态不会改变
问题描述
我有这样的表格:
function nametst(str) {
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("namevalidity").innerHTML = this.responseText;
}
};
xmlhttp.open("POST", "nametst.php?=namerequest" + str, true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.send();
}
function mailtst(str) {
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("mailvalidity").innerHTML = this.responseText;
}
};
xmlhttp.open("POST", "mailtst.php?=mailrequest" + str, true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.send();
}
function submittst(){
nametst(document.getElementsByName('name')[0].value);
mailtst(document.getElementsByName('email')[0].value);
return xls;
}
var xls;
function submittes(callback){
httpRequest = new XMLHttpRequest();
httpRequest.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200){
callback(httpRequest.responseText);
}
};
httpRequest.open('POST', "submitform.php", true);
httpRequest.send();
}
submittes(function (result) {
if (result === "yes"){
xls = true;
document.getElementById("submitanswer").innerHTML = "true";
}
else{
xls = false;
document.getElementById("submitanswer").innerHTML = "false";
}
});
<form method="POST" onsubmit= "return submittst();" action = "welcome.html">
Name: <input type="text" name="name" onblur="nametst(value)">
<span id="namevalidity"></span> </p>
email: <input type="text" name="email" onblur="mailtst(value)">
<span id="mailvalidity"></span> </p>
<input type="submit" value="submit">
<p> form validity: <span id="submitanswer"></span> </p>
当我输入错误的姓名或电子邮件时,会出现错误。到目前为止,一切都很好。但是表单的有效性总是假的,即使我点击“提交”按钮也不会改变。当我为名称和电子邮件设置默认值并且它们有效时,表单有效性保持为真。
为什么会这样?
我该如何解决?
解决方案
所以,我知道问题出在回调方法上。由于我的问题没有答案,我将使用没有这些回调的同步模式。
推荐阅读
- spring-integration - 为什么没有根据成功建议复制原始标题
- javascript - 难以处理错误:缩小的 React 错误 #321 - ReactJS
- javascript - 如何在元素 ui 的 el-option 内格式化 v-for 中的值
- java - 如何保证方法调用中的可交换性?
- opencv - 为什么 cv2.seamlessClone 抛出错误'(-215:断言失败)'?
- robotframework - 如何使用空手道 UI 自动化为 Angular JS 应用程序上传 PNG/JPEG 文件
- powershell-3.0 - 使用 PowerShell 从文本文件中删除文本模式
- python - 为什么熊猫 df.copy() 的更改会影响原始 df
- r - 得到结果后从 R 中导出数据
- javascript - 将视频锚点的所有实例替换为 iframe