这是html div:
<div class="alert alert-success alert-dismissable feedstatus hidden">
<button type="button" class="close" data-dismiss="alert">×</button>
<span class="glyphicon glyphicon-ok-sign" style="color:#0c0; font-size:40px;"> </span></a><br/>Message recieved.<br/>Thanks <strong class="feedbacker"></strong>
</div>
<form role="form" onsubmit="regFeedback()">
<div class="form-group">
<input class="form-control bordering" id="feedbacker" type="text" name="name" placeholder="Name" style="border:none; border:0px solid #fff;" required/><br>
<input class="form-control bordering" id="feedbackemail" type="email" name="email" placeholder="tu@email.com" style="border:none; border:0px solid #fff;" required/><br>
<textarea class="form-control bordering" id="feedback" name="feedback" placeholder="Write me something before go" style="border:none; border:0px solid #fff;" required/></textarea><br>
<button type="submit" class="btn btn-block">Send</button>
</div>
</form>
</div>
另一方面,javascript:
function regFeedback() {
var name=document.getElementById('feedbacker').value;
var mail=document.getElementById('feedbackemail').value;
var feed=document.getElementById('feedback').value;
var xmlhttp;
if (window.XMLHttpRequest) {
xmlhttp=new XMLHttpRequest();
} else {
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function() {
if (this.readyState==4 && this.status==200) {
$(document).ready(function() {
$("form").remove();
$(".feedstatus").removeClass("hidden");
$(".feedbacker").text(name);
alert("Mensaje recibido. Gracias");
});
}
};
xmlhttp.open("GET","https://page.php?name="+name+"&email="+mail+"&feedback="+feed,true);
xmlhttp.send();
}
数据到达数据库,但回调事件验证:&#34; if(this.readyState == 4&amp;&amp; this.status == 200){&#34;看起来不行。我是新手,但我做得很好。但从编辑到另一个时刻,出现了一些问题:/
答案 0 :(得分:0)
未经测试,但我认为不是
if (this.readyState==4 && this.status==200)
将是
if (xmlhttp.readyState==4 && xmlhttp.status==200)
this
是javascript&amp;中的关键字它指的是一个物体;也就是说,上下文中的主题,或执行代码的主题
同样令人惊讶,所以看到document.ready
函数在ajax成功函数
答案 1 :(得分:0)
使用此:
<div class="alert alert-success alert-dismissable feedstatus hidden">
<button type="button" class="close" data-dismiss="alert">×</button>
<span class="glyphicon glyphicon-ok-sign" style="color:#0c0; font-size:40px;"> </span></a><br/>Message recieved.<br/>Thanks <strong class="feedbacker"></strong>
</div>
<form role="form">
<div class="form-group">
<input class="form-control bordering" id="feedbacker" type="text" name="name" placeholder="Name" style="border:none; border:0px solid #fff;" required/><br>
<input class="form-control bordering" id="feedbackemail" type="email" name="email" placeholder="tu@email.com" style="border:none; border:0px solid #fff;" required/><br>
<textarea class="form-control bordering" id="feedback" name="feedback" placeholder="Write me something before go" style="border:none; border:0px solid #fff;" required/></textarea><br>
<button type="button" onclick="regFeedback()" class="btn btn-block">Send</button>
</div>
</form>
</div>
答案 2 :(得分:0)
您必须在检查状态更改时使用 xmlhttp 对象而不是此。
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
$("form").remove();
$(".feedstatus").removeClass("hidden");
$(".feedbacker").text(name);
alert("Mensaje recibido. Gracias");
}
};
此外,您无需对 $(document).ready()功能执行操作,您可以直接在成功阻止中执行操作。