我想使用ajax提交另一个页面上的表单。这是我的代码:
Send();
function Send() {
var abc = document.getElementsByClassName("main");
for (var i = 0; i < abc.length; i++) {
var item = abc.item(i);
var mainButton = item.getElementsByClassName("mybuttonclass");
if (mainButton.length > 0) {
if (mainButton[0].innerText.includes("some text")){
var url = mainButton[0].getAttribute("href");
loadXMLDoc(url, title, text);
}
}
}
}
function loadXMLDoc(url, title, text) {
var xmlhttp = new XMLHttpRequest();
xmlhttp.responseType = "document";
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == XMLHttpRequest.DONE) {
if (xmlhttp.status == 200) {
var resp = xmlhttp.response;
var textArea = resp.getElementsByClassName('textarea');
textArea.value = "Hello, this is my test message!";
var subBtn = resp.getElementsByClassName('btnclass');
if (subBtn.length > 0) {
subBtn.click();
}
}
else if (xmlhttp.status == 400) {
console.log('There was an error 400');
}
else {
console.log('something else other than 200 was returned');
}
}
};
xmlhttp.open("POST", url, true);
xmlhttp.send();
}
这没有按预期工作,消息中没有发送任何内容,也没有记录错误。我错过了什么?如何实现这一目标。任何帮助表示赞赏。
感谢。
答案 0 :(得分:0)
加载页面时,服务器应该进行刷新。如果这不是一个选项,我会在同步模式下使用jQuery的$ .ajax方法,攻击选项卡的click事件:
$('a.tab').click(function() {
$.ajax({
url: "/refresh",
method: "post",
async: false,
data: { refresh: "ok" }
});
});