Ajax提交form表单是一种非常有用的技术,它可以让我们在不刷新页面的情况下提交表单数据。它可以节省时间,减少服务器压力,并且可以使用户体验更好。
要使用Ajax来提交form表单,我们首先要创建一个XMLHttpRequest对象:
var xhr = new XMLHttpRequest();
然后,我们可以使用open()方法来打开一个连接:
xhr.open('POST', 'url', true);
第一个参数是请求方法(POST或GET),第二个参数是URL地址,第三个参数是true表示异步请求。然后我们可以使用send()方法来将表单数据发送到服务器端。
xhr.send(data);
data是一个JavaScript对象,其中包含要发送到服务器的所有表单字段的名称和值。例如:
var data = {name: 'John', email: 'john@example.com'};
当服务器端处理完请求时会返回一个响应。我们可以使用onreadystatechange事件来监听这个响应并根据需要执行相应的代码。例如:
xhr.onreadystatechange = function() { if (xhr.readyState == 4 && xhr.status == 200) { // do something with the response } };
当readyState == 4时表示请求已完成并已得到服务器端的回复。当status == 200时表示请求已成功处理。因此上面的代码将在请求完成并得到正常回复时执行相应的代码。
总之,Ajax能够让我们在不刷新页面的情况下快速、准确地将form表单数据传递到服务器端并接受返回信息。它能够大大减少传输量、减少服务器负载、显著地优化用户体验。
AJAX提交form表单,这在日常项目中是经常用到的。前台无论是简单的html、jsp或者使用了easyui框架,只要是提交表单一般都会使用到AJAX。
1、无返回结果的,就是把表单数据直接提交给后台,让后台直接处理;
最简单的就是$(“#formid”).submit();直接将form表单提交到后台。
2、返回有结果的,这种情况下,后台不管是执行成功还是失败,最终的信息都需要返回到前台。
第二种是使用最多的一种,因为程序的执行成功与否都需要给用户提示,程序一般也都是多步完成的,执行完插入操作,需要发起流程,这就需要在界面上判断成功与否。ajax本身属于有返回结果的一类,其中的success
方法就是处理后台返回结果的。
1、将form表单数据序列化
<span style="font-size:18px;"> $.ajax({
type: "POST",
url:your-url,
data:$("#yourformid").serialize(),
async: false,
error: function(request) {
alert("Connection error");
},
success: function(data) {
//接收后台返回的结果
}
});</span>
需要注意的是,使用这种方法的前提是form表单中的项一定要有name属性,后台获取的键值对为 key=name 值,value=各项值。
注意:无论是
input
标签还是span
标签或者其他标签,一定要有name
属性,没有name
属性后台是获取不到该项的。
2、通过窗口查找form提交
<span style="font-size:18px;"> // 提交表单
var obj = document.getElementById("xx_iframe").contentWindow;
obj.$("#yourform").form("submit",{
success :function(data){
//对结果处理
}
});</span>
因为在当前界面上弹出对话框,然后在对话框上的按钮触发对话框中表单提交,对话框又是链接的另外的html页面,如此通过$(“#formid”)的方式是找不到对话框中的form的,因此这种情况下只能使用这种方式提交表单。
另外ajax中封装的get
,post
请求也都属于有返回结果的一类。
总的来说,无返回结果的和有返回结果的(将form表单数据序列化+通过窗口实现form提交),form表单都必须要有name
属性。
AJAX如何工作? AJAX 使用的 XMLHttpRequest 的对象与服务器通信。让我们尝试通过下面显示的图像了解 AJAX 的流程或 AJAX 的工...
React 组件的数据可以通过 componentDidMount 方法中的 Ajax 来获取,当从服务端获取数据库可以将数据存储在 state 中,再用 thi...
本章节我们将讨论如何在 React 中使用表单。一个简单实例在实例中我们设置了输入框 input 值value = {this.state.data}。在输入...
第 14 章 指代宏第 9 章只是把变量捕捉视为一种问题 某种意料之外,并且只会捣乱的负面因素。本章将显示变量捕捉 也可以被有建设...