【已解决】同时使用ajax和form表单传数据的冲突问题
昨天踩了一个大坑,下面总结一下:
前后端数据交互的两种方式:
1、ajax发起请求(请求中可以带有数据)并获取返回的数据
下面给出一个ajax的常见格式:
1 $.ajax({
2 url:"http://www.test.com", //请求的url地址
3 dataType:"json", //返回格式为json
4 async:true,//请求是否异步,默认为异步,这也是ajax重要特性
5 data:{"id":"1","name":"名字"}, //参数值
6 type:"GET", //请求方式
7 beforeSend:function(){
8 //请求前的处理
9 },
10 success:function(req){
11 //请求成功时处理
12 },
13 complete:function(){
14 //请求完成的处理
15 },
16 error:function(){
17 //请求出错处理
18 }
19 });
实现这种方式的常见方法是给html的标签添加事件,用事件驱动ajax完成数据交互,比如:
1 <select id="myselect">
2 <option value="result_data" selected>全部数据</option>
3 <option value="result_cj">财经</option>
4 <option value="result_fc">房产</option>
5 <option value="result_game">游戏</option>
6 <option value="result_js">军事</option>
7 <option value="result_jy">教育</option>
8 <option value="result_kj">科技</option>
9 <option value="result_qc">汽车</option>
10 <option value="result_ty">体育</option>
11 <option value="result_tyjd">体育焦点</option>
12 <option value="result_zhty">综合体育最新</option>
13 <option value="result_yl">娱乐</option>
14 </select>
15 <button onclick="tijiao()">检索</button>
上面的代码通过给一个button添加tijiao( )事件,把select标签的数据传递到后端
1 function tijiao(){
2 var select_value= document.getElementById("myselect").value
3 $.ajax({
4 url:"/cloud_data?data="+select_value+"",
5 async:true,
6 success:function(data) {
7 option.series[0].data=data.data
8 // 使用刚指定的配置项和数据显示图表。
9 myChart.setOption(option);
10 },
11 error:function (xhr,type,errorThrown) {
12 alert("出现错误!")
13 }
14 })
15 }
2、提交form表单发起请求并传递数据
如果想把select标签的数据传递到后端,还有一种方式是提交表单,也就是使用form和input标签的submit。
关键在于form提交和ajax提交这两种方式是不可以混用的,因为表单和ajax同时提交的话,页面就会整体刷新。
我的问题在于在一个form表单的有submit属性的标签上添加了ajax事件,用两种方式同时提交数据,每次提交之后,ajax并不能获取到后台传回的数据,
因为ajax执行成功之后,form表单也提交了,页面会整体刷新一次,数据无法回传也就无法进行下面的操作,这样就进入了一个错误的循环,每次提交
数据确实可以提交到后端,但是返回的数据无法被接收,因为页面被整体刷新了。
【已解决】同时使用ajax和form表单传数据的冲突问题的更多相关文章
- 3..jquery的ajax获取form表单数据
jq是对dom进行的再次封装.是一个js库,极大简化了js使用 jquery库在js文件中,包含了所有jquery函数,引用:<script src="jquery-1.11.1.mi ...
- html基础:jquery的ajax获取form表单数据
jq是对dom进行的再次封装.是一个js库,极大简化了js使用 jquery库在js文件中,包含了所有jquery函数,引用:<script src="jquery-1.11.1.mi ...
- django ajax提交form表单数据
后台: from django.shortcuts import render from django.shortcuts import redirect from django.shortcuts ...
- 使用ajax提交form表单,包括ajax文件上传 转http://www.cnblogs.com/zhuxiaojie/p/4783939.html
使用ajax提交form表单,包括ajax文件上传 前言 使用ajax请求数据,很多人都会,比如说: $.post(path,{data:data},function(data){ ... },&qu ...
- ajax提交form表单
1. ajax提交form表单和不同的form表单的提交主要区别在于,ajax提交表单是异步提交的,而普通的是同步提交的表单. 2. from视图部分 <form id="loginF ...
- 记住 MVC里用formcollection接收form表单传来的值,表单属性必须有name为健!
记住 MVC里用formcollection接收form表单传来的值,input属性必须有name为健! 调了一晚上!! 写个日志记下!!
- ajax提交form表单资料详细汇总
一.ajax提交form表单和不同的form表单的提交主要区别在于,ajax提交表单是异步提交的,而普通的是同步提交的表单.通过在后台与服务器进行少量数据交换,ajax 可以使网页实现异步更新.这意味 ...
- 今天在研究jquery用ajax提交form表单中得数据时,学习到了一种新的提交方式
今天在研究jquery用ajax提交form表单中得数据时,学习到了一种新的提交方式 jquery中的serialize() 方法 该方法通过序列化表单值,创建 URL 编码文本字符串 序列化的值可在 ...
- jquery实现ajax提交form表单的方法总结
本篇文章主要是对jquery实现ajax提交form表单的方法进行了总结介绍,需要的朋友可以过来参考下,希望对大家有所帮助 方法一: function AddHandlingFeeToRefund( ...
- jquery的ajax提交form表单方式总结
方法一: function AddHandlingFeeToRefund() { var AjaxURL= "../OrderManagement/AjaxModifyOrderServic ...
随机推荐
- Spring Boot整合JWT实现接口访问认证
最近项目组需要对外开发相关API接口,需要对外系统进行授权认证.实现流程是先给第三方系统分配appId和appSecret,第三方系统调用我getToken接口获取token,然后将token填入Au ...
- letcode-两数相除
题解 设未知数: Br= 125 / 3,拆进行如下拆解: Br = 125 / 3 Br = (29 + 96)/3 Br = 29/3 + (32 * 3) / 3 Br = 29/3 + (2 ...
- String--getline()
#include <string> #include <sstream> #include <iostream> int main() { std::wstring ...
- 常见的问题系列--- Swagger @ApiOperationSupport忽略失效的问题
https://www.cnblogs.com/hujunwei/p/15853307.html
- 程序员应具备的PS基本技能(二):程序员切图最常使用的工具组-选择工具组
若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/ar ...
- ProtoBuffer-nanopb介绍
目录 一.需求 二.环境 三.相关概念 3.1 protocol buffer介绍 3.2 nanopb(支持C语言) 3.3 proto文件 四.proto基本语法 4.1 proto文件的定义 4 ...
- Java面向对象之接口和抽象类的区别一目了然
介绍 相信对于Java面向对象部分,很多人很长一段时间对于接口和抽象类的区别,使用场景都不是很熟悉,同是作为抽象层重要的对象,工作中到底什么情况下使用抽象类,不是很清楚.本文就一次性把这些概念一次性说 ...
- 【LeetCode贪心#10】划分字母区间(有涉及hash数组的使用)
划分字母区间 力扣题目链接(opens new window) 字符串 S 由小写字母组成.我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中.返回一个表示每个字符串片段的长度的列表 ...
- 【Azure Key Vault】使用Azure CLI获取Key Vault 机密遇见问题后使用curl命令来获取机密内容
问题描述 在使用Azure Key Vault的过程中,遇见无法获取机密信息,在不方便直接写代码的情况下,快速使用Azure CLI指令来验证当前使用的认证是否可以获取到正确的机密值. 使用CLI的指 ...
- 一文了解 NebulaGraph 上的 Spark 项目
本文首发于 Nebula Graph Community 公众号 最近我试着搭建了方便大家一键试玩的 Nebula Graph 中的 Spark 相关的项目,今天就把它们整理成文分享给大家.而且,我趟 ...