项目Js源码整合
整合一下目前做的项目中JS中用到的相关源码等,留待记录和使用。
一、ajaxgrid源码部分
1、初始化
2、查询
var code = $('#city option:selected').val();//Jquery获取选中的值
var radius = $('#radius option:selected').val();//Jquery获取选中的值
3、删除
①:
function deleteData(obj) {
//获取当前行对象
var row = ajaxgrid.getEventRecord(obj);
//根据row获取当前行的相关数据
var province = row.data.province;
var year = row.data.year;
var stage = row.data.stage;
//向后台action发起request请求
$.request({
action:"delete",
//附加参数传递方法:params中传递附加的参数
params:{'uuid':row.data.uuid},
success:onsavecomplete
}) ;
}
function onsavecomplete(response){
setRM('success', response.getMessage(), retrieve());
}
4、保存
5、根据id获取值,时间值等
JSP:
<td align="center" width="80">月报年份</td>
<td>
<hy:date width="100px" id="yearId" editor="year" name="year" upload="true" startyear="2018" endyear="${test}"/></td>
<td align="center" width="80">月份</td>
<td>
<hy:drop width="100px" id="stageId" list="stageList" listKey="value" listValue="label" name="stage" upload="true" />
</td>
JS:根据日期id获取日期的相关数据
function checkIsHave() {
var year = yearId.getValue();
var stage = stageId.getSelectedValue();
if (year == null || year == "") {
setRM('error', "请选择年份!");
return false;
}
if (stage == null || stage == "") {
setRM('error', "请选择期数!");
return false;
}
$.request({
action:"checkIsHave",
params:{'yearStr':year, 'stageStr':stage},
success:function (response) {
var isHave = response.getParameter("isHave");
var nohave=response.getParameter("message");
if (nohave) {
alert("尚未报送该月数据,无法生成月报")
}else{
if (isHave) {
$.confirm("提示", "已经生成过本月月报是否要重新生成?", function() {
createMonthReport();
}, function() {
});
} else {
createMonthReport();
}
}
}
}) ;
}
6、详情、跳转链接 : a 标签
JSP:
<hy:gridcustom title="操作" width="200" customstylefunc="setLink()">
<!-- <a href="javascript:void(0)" onclick="edit(this)">详情</a>
<a href="javascript:void(0)" id="rid" onclick="rid(this)" >解除注销</a> -->
</hy:gridcustom>
JS方法:
function setLink(record){
var htmlstr="";
var status = record.get("busStatus");
if (status == "2") {
htmlstr += "<a href=\"javascript:void(0)\" onclick=\"edit(this)\">详情</a> ";
htmlstr += "<a href=\"javascript:void(0)\" onclick=\"rid(this)\">解除注销</a>";
}else{
htmlstr += "<a href=\"javascript:void(0)\" onclick=\"edit(this)\">详情</a>";
}
return htmlstr;
}
二、ajaxform源码部分
1、获取ajaxform中的某个对象
var city = ajaxform.getColumnValue("city");
var jtyktVal = response.getParameter("jtykt");
ajaxform.setValue("jtykt",jtyktVal);
三、源码片段
1、界面取值、赋值计算等
function lineDrop1(){
var code = $('#city option:selected').val();//Jquery获取选中的值
var lineDrop1 = $('#lineDrop1 option:selected').val();
var upMiler1 = $('input[name=upMiler][type=text]');
var downMiler1 = $('input[name=downMiler][type=text]');
var upDownMiler1 = $('input[name=upDownMiler][type=text]');
$.post('/gj/gj/application/gjOnlineApplication.do?action=getBusLineUp',{'lineDrop1':lineDrop1,'code':code},function(result){
upMiler1.val((Number(result.BusLineUp)/1000).toFixed(2));
downMiler1.val((Number(result.BusLineDown)/1000).toFixed(2));
upDownMiler1.val((Number(upMiler1.val())+Number(downMiler1.val())).toFixed(2));
$('input[name=yyxlcd][type=text]').val(((Number(upMiler1.val())+Number(downMiler1.val())+Number(upDownMiler1.val()))/2).toFixed(2));
})
}
2、级联下拉部分
JSP:
<td align="center" width="80">城市</td>
<td>
<hy:drop width="103px" list="cityList" listKey="value" listValue="label"
name="city" upload="true" nullable="false" id="cityId" onchange="refreshDrop()"/>
</td>
<td align="center" width="80">企业</td>
<td>
<hy:drop width="103px" id="unitDrop" list="unitWorkList" listKey="value" listValue="label" listFilter="filter" name="unit" upload="true" />
</td>
<td align="center" width="80">线路</td>
<td>
<hy:drop width="103px" id="lineDrop" name="lineUuid" list="lineList" listKey="value" listValue="label" listFilter="filter" upload="true" ></hy:drop>
</td>
JS:级联下拉
function refreshDrop() {
var city = cityId.getSelectedValue();
unitDrop.refreshByFilter(city);
lineDrop.refreshByFilter(city);
}
3、0-100的数字校验,小数校验、整数校验
function vaild3 (title,column) {
var columnObj = ajaxform.getColumnComponent(column);
//0——100的数字校验
var patrn = /^(((\d|[1-9]\d)(\.\d{1,2})?)|100|100.0|100.00)$/;
//2为小数校验
var patrn = /^(([0-9][0-9]*)|(([0]\.\d{1,2}|[1-9][0-9]*\.\d{1,2})))$/;
//正则整数校验
var patrn = /^[0-9]*$/;
var columnValue = ajaxform.getColumnValue(column);
if (columnValue!=null && columnValue!="" && !patrn.test(columnValue)) {
notPassMsg = title + ':只能输入0-100,小数点后两位的数字!';
notPassArray[column]=notPassMsg;
columnObj.css({"background-color":"#FDC8CC"});
$.alert('提示信息', notPassMsg, function(){});
} else {
delete notPassArray[column];
columnObj.css({"background-color":""});
}
}
4、后台response,前台得到值
Action:
private String planBeginYear;
private Long city;
//添加set和get方法
responseData.setParameter("planBeginYear", planBeginYear);
responseData.setParameter("city", city);
JS:
var year = response.getParameter("planBeginYear");
var city = response.getParameter("city");
项目Js源码整合的更多相关文章
- vue.js源码精析
MVVM大比拼之vue.js源码精析 VUE 源码分析 简介 Vue 是 MVVM 框架中的新贵,如果我没记错的话作者应该毕业不久,现在在google.vue 如作者自己所说,在api设计上受到了很多 ...
- underscore.js 源码
underscore.js 源码 underscore]JavaScript 中如何判断两个元素是否 "相同" Why underscore 最近开始看 underscore.js ...
- vue源码分析—Vue.js 源码构建
Vue.js 源码是基于 Rollup 构建的,它的构建相关配置都在 scripts 目录下.(Rollup 中文网和英文网) 构建脚本 通常一个基于 NPM 托管的项目都会有一个 package.j ...
- 修改CKplayer.js 源码解决移动端浏览器全屏不能限制快进的问题
原文地址:https://www.cnblogs.com/jying/p/9642445.html,转载请说明出处. 最近项目需要播放视频且限制未观看部分的快进功能,找了两款js插件ckplayer和 ...
- 以V8中js源码为例了解GitHub查看代码功能
GitHub作为开源仓库,许多开源项目仓库这里,当然不乏十分优秀的,比如Node.V8,我一直比较好奇js源码,像java的话,因为环境是JDK,我们结合IDE很容易就能跳转到其源码内部去查看实现,但 ...
- 嗨,让我带你逐行剖析Vue.js源码
本项目受到了阮一峰老师的肯定,已刊登在阮一峰老师微信公众号的科技爱好者周刊第87期,同时也被多个微博大V转发,短短一个月时间内在github上star数量就已经突破2k! Hello,大家好,我最近在 ...
- Vue.js 源码构建(三)
Vue.js 源码是基于 Rollup 构建的,它的构建相关配置都在 scripts 目录下. 构建脚本 通常一个基于 NPM 托管的项目都会有一个 package.json 文件,它是对项目的描述文 ...
- 手写Express.js源码
上一篇文章我们讲了怎么用Node.js原生API来写一个web服务器,虽然代码比较丑,但是基本功能还是有的.但是一般我们不会直接用原生API来写,而是借助框架来做,比如本文要讲的Express.通过上 ...
- 手写Koa.js源码
用Node.js写一个web服务器,我前面已经写过两篇文章了: 第一篇是不使用任何框架也能搭建一个web服务器,主要是熟悉Node.js原生API的使用:使用Node.js原生API写一个web服务器 ...
随机推荐
- Docker容器技术--自定义网桥后的默认网卡名称
新建docker虚拟网络命令 这里以172.18.0.1为例,名字为clusterdocker network create --subnet=172.18.0.0/16 cluster 当我们想新建 ...
- reactor模式:主从式reactor
前面两篇文章提到 reactor模式:单线程的reactor模式 reactor模式:多线程的reactor模式 NIO的server模式只有5个阶段,但是,NIO的selectionkey里确实有个 ...
- 第九章节 BJROBOT 多点导航【ROS全开源阿克曼转向智能网联无人驾驶车】
1.把小车平放在地板上,用资料里的虚拟机,打开一个终端 ssh 过去主控端启动roslaunch znjrobot bringup.launch. 2.再打开一个终端,ssh 过去主控端启动 rosl ...
- Java核心类
Java核心类的学习: 常用类库 io流 集合 多线程 网络编程 调试与优化 XML和JSON 枚举.注解和反射 设计模式
- springcloud学习(一)之Eureka
前言 微服务原则上是应该有多个服务提供者的实例的,在通常情况下服务提供者的数量和分布往往是动态变化的,这样在传统的单体应用中的那种硬编码服务url进行远程调用的方式就不足取.服务注册中心就是为了解决服 ...
- ABP框架中短信发送处理,包括阿里云短信和普通短信商的短信发送集成
在一般的系统中,往往也有短信模块的需求,如动态密码的登录,系统密码的找回,以及为了获取用户手机号码的短信确认等等,在ABP框架中,本身提供了对邮件.短信的基础支持,那么只需要根据自己的情况实现对应的接 ...
- Redis性能篇(二)CPU核和NUMA架构的影响
Redis被广泛使用的一个很重要的原因是它的高性能.因此我们必要要重视所有可能影响Redis性能的因素.机制以及应对方案.影响Redis性能的五大方面的潜在因素,分别是: Redis内部的阻塞式操作 ...
- ES6 Set.Map.Symbol数据结构
一.ES6 Set数据结构 ES6新推出了Set数据结构,它与数组很类似,Set内部的成员不允许重复,每一个值在Set中都是唯一的,如果有重复的值出现会自动去重(也可以理解为忽略掉),返回的是集合对象 ...
- Eslint提示const关键字被保留
如果在使用eslint的时候提示: error Parsing error: The keyword 'const' is reserved 有可能是因为eslint默认审查的es5,需要明确让他审查 ...
- ORACLE的还原表空间UNDO写满磁盘空间,解决该问题的具体步骤
产生问题的原因主要以下两点:1. 有较大的事务量让Oracle Undo自动扩展,产生过度占用磁盘空间的情况:2. 有较大事务没有收缩或者没有提交所导制:说明:本问题在ORACLE系统管理中属于比较正 ...