正如标题所述,我的 Ajax 调用实际上导致表单提交到其默认操作,为什么?我以前从未遇到过这种情况,我所有其他的 ajax 调用都没有这样做过。
function newAjax(t,u){ //t = type(post/get), u = url
var资源=空;
如果(窗口。ActiveXObject){
资源 = 新 ActiveXObject("Microsoft.XMLHTTP");
}
否则如果(window.XMLHttpRequest){
资源 = 新 XMLHttpRequest();
resource.overrideMimeType('text/html');
}
资源.open(t,u,false);
resource.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
返回资源;
}
函数 send_newsletter(){
formObj = document.getElementById("news_form");
var 输入 = formObj.getElementsByTagName("INPUT");
var 参数 = "";
for(i = 0; i < 输入长度; i++){
参数 += 输入[i].name+"="+encodeURI(inputs[i].value);
如果(我!=输入。长度-1){
参数 += "&";
}
}
var url = "whereitshouldbegoing.com";
var ajax = newAjax("POST",url);
ajax.onreadystatechange = ajaxResult;
ajax.setRequestHeader("内容长度", parameters.length);
ajax.setRequestHeader("连接", "关闭");
ajax.send(参数);
}
在 .send 行之前一切正常,这是导致表单提交的错误(我也不知道 ajax 请求是否真的成功了)。
从带有 onclick="send_newsletter()" 的 input type="image" 元素调用 send_newsletter 函数
请不要告诉我使用 jQuery 或其他库,尽管我很愿意,但我们不能使用任何外部库、公司指南等等。