首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >XMLHttpRequest形式

XMLHttpRequest形式
EN

Stack Overflow用户
提问于 2019-05-18 13:29:55
回答 1查看 437关注 0票数 0

我正在使用XMLHttpRequest构建一个表单。这是我的问题:

当表单提交并且响应为0(字符串)时,#output div中显示的消息是“出了问题.”(必须如此);

相反,当表单提交并且响应为1(字符串)时,#output div中显示的消息是"1“,而不是”发送!“(应该是这样)。

代码语言:javascript
运行
复制
<form id="contactform">
<input name="name" type="text">
<input name="surname" type="text">
<input name="email" type="text">
<input type="submit" value="Send">
</form>

<div id="output"></div>

JS

代码语言:javascript
运行
复制
const form = document.getElementById("contactform");
const output = document.getElementById("output");

form.onsubmit = () => {
    var xhr = new XMLHttpRequest();
    var formData = new FormData(form);
    xhr.open('POST', 'https:...');
    xhr.send(formData);
    xhr.onreadystatechange = () => {
        if (this.readyState === 4 && this.status === 200) {
            showResponse(this.response);
        }
    };
    xhr.onerror = () => {
        showResponse("0");
    };
    return false;
};

showResponse = data => {
    var text;
    switch (data) {
        case "0":
            text = "Something went wrong...";
            break;
        case "1":
            text = "SENT!";
            break;
        default:
            text = data;
    }
    output.innerHTML = text;
};

我的密码怎么了?

EN

回答 1

Stack Overflow用户

发布于 2019-05-18 13:51:53

this引用问题,更改如下:

代码语言:javascript
运行
复制
form.onsubmit = () => {
    var xhr = new XMLHttpRequest();
    var formData = new FormData(form);
    xhr.open('POST', 'https:...');
    xhr.send(formData);
    xhr.onreadystatechange = function() {
        if (this.readyState === 4 && this.status === 200) {
            showResponse(this.response);
        }
    };
    xhr.onerror = () => {
        showResponse("0");
    };
    return false;
};
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56199416

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档