JavaScript实现ajax发送表单数据

前端样式:

    <style>
        .model{
            position: fixed;
            top: 0px;
            left: 0px;
            bottom: 0px;
            right: 0px;
            background-color: white;
        }
        .hide{
            display: none;
        }
    </style>

前端html代码:

<div><a onclick="show_form();">添加</a></div>
<div class="model hide">
    <form method="post" id="add">
        <input type="text" name="username" placeholder="username">
        <input type="text" name="age"  placeholder="age">
        <input type="radio" name="gender" value="1" checked>男
        <input type="radio" name="gender" value="0">女
        <select name="class">
            {% for cls in classes %}
                <option value="{{ cls.id }}">{{ cls }}</option>
            {% endfor %}
        </select>
        <input type="button" onclick="add_stu();" value="添加">
    </form>
</div>
<div>
    <table border="1">
        <thead>
            <tr>
                <th>ID</th>
                <th>姓名</th>
                <th>年龄</th>
                <th>性别</th>
                <th>班级</th>
                <th>编辑</th>
            </tr>
        </thead>
        <tbody>
            {% for row in students %}
                <tr><td>{{ row.id }}</td>
                    <td>{{ row.username }}</td>
                    <td>{{ row.age }}</td>
                    <td>
                        {% if row.gender %}
                        男
                        {% else %}
                        女
                        {% endif %}
                    </td>
                    <td>{{ row.cls }}</td>
                    <td><a onclick="XhrPostRequest(this);">删除</a>|<a href="/edit_student.html?nid={{ row.id }}">编辑</a></td>
                </tr>
            {% endfor %}
        </tbody>
    </table>
</div>

相关js代码:show_form

    function show_form(){
        document.getElementsByClassName("model")[0].className = ‘model‘;
    }

ajax发送:

    function GetXhr(){
        if(XMLHttpRequest){
            var Xh = new XMLHttpRequest();
        }else{
            Xh = new ActiveXObject(‘Microsoft.XMLHTTP‘);
        }
        return Xh
    }

    function add_stu(){
        var xhr=GetXhr();
        xhr.onreadystatechange = function(){  #只要是状态码发生改变就会触发
            var data=xhr.responseText;
            var ret_dict = JSON.parse(data);
            if(xhr.readyState==4){
                alert(ret_dict[‘status‘])
                document.getElementById("add").reset();
                document.getElementsByClassName("model")[0].className += ‘ hide‘;
                document.location.reload()
            }
        }
        //获取text值
        var username=document.getElementsByName("username")[0].value;
        var age = document.getElementsByName(‘age‘)[0].value;
        //var token =document.getElementsByName(‘csrfmiddlewaretoken‘)[0].value;
        var token = "{{ csrf_token }}"
        //获取radio的表单值
        var radio = document.getElementsByName(‘gender‘);
        var gender=null;
        for(i=0;i<radio.length;i++){
            if(radio[i].checked){
                if(i==0)
                    gender=1;
                else
                    gender=0;
            }
        }
        //获取select表单值
        var select=document.getElementsByName(‘class‘)[0]
        var index=select.selectedIndex;
        var sel_id = select[index].value;

        //重组数据
        var data = "username="+username+"&age="+age+"&gender="+gender+"&class="+sel_id+"&csrfmiddlewaretoken="+token;
        xhr.open(‘post‘,‘/add_student.html‘);     #请求头一定要设置
        xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset-UTF-8");
        xhr.send(data);
    }

删除案例可看:原生ajax中get和post请求

原文地址:https://www.cnblogs.com/ssyfj/p/8673372.html

时间: 2024-11-10 12:16:22

JavaScript实现ajax发送表单数据的相关文章

异步发送表单数据到JavaBean,并响应JSON文本返回

1)  提交表单后,将JavaBean信息以JSON文本形式返回到浏览器 <form> 编号:<input type="text" name="id" value="1"/><br/> 姓名:<input type="text" name="name" value="哈哈"/><br/> 薪水:<input type=&q

jquery Ajax提交表单数据

//表单中控件的name要和实体类字段属性一致 $.ajax({ cache: true, type: "POST", url:ajaxCallUrl, data:$('#yourformid').serialize(),// 你的formid async: false, error: function(request) { alert("Connection error"); }, success: function(data) { $("#common

每天一个JavaScript实例-检測表单数据

<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>每天一个JavaScript实例-检測表单数据</title> <style> [role="alert"]{ background-color: #f

通过FormData对象可以组装一组用 [XMLHttpRequest]发送请求的键/值对,它可以更灵活方便的发送表单数据。

工作记录用 1 大概页面,点击选择按钮,选择文件,填写备注并可以上传前预览,然后点击上传按钮开始上传 2 html+js代码 <h2>Test</h2> <div id="fileList"></div> <span id="file_ct" style="display:none"><input id="file_input" accept="Ima

21SpringMvc_异步发送表单数据到Bean,并响应JSON文本返回(这篇可能是最重要的一篇了)

这篇文章实现三个功能:1.在jsp页面点击一个按钮,然后跳转到Action,在Action中把Emp(int id ,String salary,Data data)这个实体变成JSON格式返回到页面上. 2.在jsp页面点击第二个按钮,然后跳转到Action,在Action中把List<Emp>这个集合变成JSON格式返回到页面上. 3.在jsp页面点击第三个按钮,然后跳转到Action, List<Emp> empList = new ArrayList<Emp>(

【ASP.NET Web API教程】5.2 发送HTML表单数据:URL编码的表单数据

注:本文是[ASP.NET Web API系列教程]的一部分,如果您是第一次看本系列教程,请先看前面的内容. 5.2 Sending HTML Form Data 5.2 发送HTML表单数据 本文引自:http://www.asp.net/web-api/overview/working-with-http/sending-html-form-data,-part-1 By Mike Wasson|June 15, 2012 作者:Mike Wasson | 日期:2012-6-15 Part

jQuery 序列化表单数据 serialize() serializeArray()

1.serialize()方法 格式:var data = $("form").serialize(); 功能:将表单内容序列化成一个字符串. 这样在ajax提交表单数据时,就不用一一列举出每一个参数.只需将data参数设置为 $("form").serialize() 即可. 2.serializeArray()方法 格式:var jsonData = $("form").serializeArray(); 功能:将页面表单序列化成一个JSON

jQuery序列化表单数据 serialize()、serializeArray()及使用

1.serialize()方法 格式:var data = $("form").serialize(); 功能:将表单内容序列化成一个字符串. 这样在ajax提交表单数据时,就不用一一列举出每一个参数.只需将data参数设置为 $("form").serialize() 即可. 2.serializeArray()方法 格式:var jsonData = $("form").serializeArray(); 功能:将页面表单序列化成一个JSON

jQuery 序列化表单数据

[转自]jQuery 序列化表单数据 serialize() serializeArray() 1.serialize()方法 格式:var data = $("form").serialize(); 功能:将表单内容序列化成一个字符串. 这样在ajax提交表单数据时,就不用一一列举出每一个参数.只需将data参数设置为 $("form").serialize() 即可. 2.serializeArray()方法 格式:var jsonData = $("