首页 > 后端开发 > php教程 > javascript - 如何使用原生的XMLHttpRequest对象提交表单?

javascript - 如何使用原生的XMLHttpRequest对象提交表单?

WBOY
发布: 2016-08-18 09:16:21
原创
1160 人浏览过

HTML:

<code><form id="info">
    <label for="id">ID: </label>
    <input type="text" name="id">
    <br>
    <label for="user">User: </label>
    <input type="text" name="user" id="user">
    <br>
    <input type="submit" name="submit" id="submit">
</form></code>
登录后复制
登录后复制

JavaScript:

<code>var submit = document.getElementById("submit");
        submit.onclick = function() {
            var xhr = new XMLHttpRequest();
            xhr.onreadystatechange = function(){
                if(xhr.state == 4) {
                    if((xhr.status >= 200 && xhr.status </code>
登录后复制
登录后复制

form.php

<code><?php $id = $_POST['id'];
$user = $_POST['user'];
echo $id . $user;
?></code>
登录后复制
登录后复制

代码如上, 我想要达到的效果, 是跟在form里添加了action和method属性一样, 提交后可以自动跳转到form.pp.
但是这样提交并没有反应, 搜了一下, 全是关于jquery的. 还是不知道用ajax提交表单是怎样的格式.

回复内容:

HTML:

<code><form id="info">
    <label for="id">ID: </label>
    <input type="text" name="id">
    <br>
    <label for="user">User: </label>
    <input type="text" name="user" id="user">
    <br>
    <input type="submit" name="submit" id="submit">
</form></code>
登录后复制
登录后复制

JavaScript:

<code>var submit = document.getElementById("submit");
        submit.onclick = function() {
            var xhr = new XMLHttpRequest();
            xhr.onreadystatechange = function(){
                if(xhr.state == 4) {
                    if((xhr.status >= 200 && xhr.status </code>
登录后复制
登录后复制

form.php

<code><?php $id = $_POST['id'];
$user = $_POST['user'];
echo $id . $user;
?></code>
登录后复制
登录后复制

代码如上, 我想要达到的效果, 是跟在form里添加了action和method属性一样, 提交后可以自动跳转到form.pp.
但是这样提交并没有反应, 搜了一下, 全是关于jquery的. 还是不知道用ajax提交表单是怎样的格式.

试试将xhr.send(serialize(form))改为

<code>var formData = new FormData(form);
xhr.send(formData);</code>
登录后复制

formData是HTML5用于异步提交表单的,应该可以满足楼主的需求。

参考http://www.cnblogs.com/lhb25/...

<code>var fd = new FormData;
fd.append("username",document.querySelector("#username").value);
fd.append("password",document.querySelector("#password").value);
...
xhr.send(fd);</code>
登录后复制
相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板