学生管理系统开发记录-ajax异步请求的实现

本文介绍了如何利用Ajax进行异步表单数据提交,通过XMLHttpRequest对象与服务器进行交互,实现了页面无刷新的效果。同时,详细讲解了如何监听并阻止回车键触发的表单默认提交行为,确保按下回车键也能发起异步请求。文中还提及了回调函数在处理多个Ajax任务中的应用,以提高代码复用性和效率。
摘要由CSDN通过智能技术生成

在学习和搜索的过程中,学习到了如何明确表达自己的需求,先说清楚自己想要什么样的功能,再去实现会比较高效。

AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)
XMLHttpRequest 对象用于和服务器交换数据

ajax异步请求的实现

页面中有一个表单,点击确定按钮即触发函数loadTable()。

<form method="get" id="myForm">
	<!--我的表单内容-->
	 <button type="button" onclick="loadTable()" id="b1">确定</button>
</form>
<div id="myTable" class="myTable"></div>

使用post方法向服务器发送请求

  function loadTable(){
  	//使用formdata方法获取表单的内容
    var myForm = document.getElementById("myForm");
    var formdata=new FormData(myForm);
    
    var xmlhttp;
    if (window.XMLHttpRequest)//检查浏览器是否支持XMLHttpRequest
    {
        //  IE7+, Firefox, Chrome, Opera, Safari 浏览器
        //创建XMLHttpRequest 对象
        xmlhttp=new XMLHttpRequest();
    }
    else
    {
        // IE6, IE5 浏览器
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange=function()
    {
        if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
            document.getElementById("myTable").innerHTML=xmlhttp.responseText;
        }
    }
    //规定请求的类型、URL 以及是否异步处理请求
    xmlhttp.open("POST","SearchTea2.php",true);
    xmlhttp.send(formdata);
  }

参考链接:
php与ajax-菜鸟教程
ajax-菜鸟教程
提交formdata以及后端php如何处理
formData使用方法

监听回车和阻止刷新

点击提交表单后会发起异步请求,如何实现回车后也发起异步请求而是提交表单呢?回车后表单会自动提交,继而刷新页面,如何阻止刷新?

监听回车键

在提交表单时使用ajax异步请求,实现摁下回车键也可以阻止表单提交,转而点击提交按钮。

//监听回车事件
  document.onkeydown=function(event){
    var e = event || window.event || arguments.callee.caller.arguments[0];
    if(e && e.keyCode==13){
         document.getElementById("b1").click();
    }
    };

参考链接:
监听或阻止回车键

阻止回车后表单自动提交的三种方法:
  1. 在form标签内加入onkeydown返回false的字段,阻止回车事件的发生:
<form method="get" id="myForm" onkeydown="if(event.keyCode==13){return false;}">
  1. 在form标签内加入onsubmti返回false的字段,阻止表单提交事件发生:
<form name="keywordForm" method="post" action="" οnsubmit="return false;"> 
  1. 让表单内多于一个文本框,将多余的文本框隐藏:
<input id="hiddenText" type="text" style="display:none" />  
使用回调函数

由于网站上存在多个 AJAX 任务,于是为创建 XMLHttpRequest 对象编写一个标准的函数,并让每个 AJAX 任务调用该函数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值