javascript的js调用
本来从一开始接触编程开始,自己就一直写后端,但是对于前端真的不会,但是没办法呀,公司
要做,所以,好吧,开始了写一写简单的javascript的内容
其中,在xxx.jsp页面中出现了这个
<a class="btn btn-default btn-xs" href="javascript:;" mi-node-data="#{id}" mi-node-level="#{priority}" mi-node-type="level" mi-node-param="adCreativeId">
<i class="fa fa-level-up" aria-hidden="true"></i>
</a>
还有这个
<div id="level" style="padding-left:10px; padding-right:10px; display:none;" >
<form>
<div class="row form-group">
<div class="col-md-offset-2 col-sm-1 form-control-static"></div>
<div class="col-sm-8">
<div class="form-group">
<label class="col-sm-3 control-label">优先级:</label>
<div class="col-sm-6 mi-radio-right">
<select class="form-control" id="input_level" name="level">
<c:forEach var="value" items="${levels}">
<option value="${value}" <c:if test="${not empty adCreative and adCreative.priority eq value }">selected="selected"</c:if>>${value} </option>
</c:forEach>
</select>
</div>
</div>
</div>
</div>
<div class="row form-group">
<div class="col-md-offset-2 col-sm-1 form-control-static"></div>
<div class="col-sm-8">
<div class="form-group">
<label class="col-sm-8 control-label">备注:最高优先级为1,最低优先级为5</label>
</div>
</div>
</div>
</form>
</div>
然后我们找到这个这个页面所依赖的js,这个js中其中一段代码如下:
$("body").on('click' ,'a[mi-node-type="level"]', function(){
var adCreativeId = $(this).attr('mi-node-data');
var level = $(this).attr('mi-node-level');
$("#input_level").val(level);
var lay = modConfirm({
title: '',
content:'',
yesBtn: '确 定',
showsmall: ''
})
lay.find('.modal-body').append($("#level").show());
lay.on("onYes",function(){
var level = $("#input_level").val().trim();
if (level == null || level == ""){
modAlert({
title : '提示',
content : '优先级不能为空!',
})
return;
}
$.ajax({
url: '/schedule/adcreative/updateCreativeLevel',
dataType: 'json',
cache: false,
type: 'get',
data : {
adCreativeId : adCreativeId,
level:level,
userId: GLOBAL.userId,
serviceToken: GLOBAL.serviceToken
},
success: function(json) {
if (json.success == true) {
modAlert({
title : '提示',
content : '修改优先级成功'
})
table.reset({});
} else {
modAlert({
title : '提示',
content : json.failMsg
})
}
},
error: function() {
modAlert({
title : '提示',
content : '网络异常,请稍后在试。',
})
}
});
});
});
从这两段代码上来看,我们有如下几个问题
1.为什么这个jsp中的代码知道调用的是js中的这个js.
我们可以看到在xxx.jsp中出现了mi-node-type="level"则刚好对应xxx.js中的 $("body").on('click' ,'a[mi-node-type="level"]', function(){
的level则,就可以确定调用这一块代码
2.知道了这个调用这个xxx.js中的这段代码,可以解释一下里面的数据
其中 $("#input_level").val(level);这个说的是在xxx.jsp中放入数据
<select class="form-control" id="input_level" name="level">
<c:forEach var="value" items="${levels}">
<option value="${value}" <c:if test="${not empty adCreative and adCreative.priority eq value }">selected="selected"</c:if>>${value} </option>
</c:forEach>
</select>
其中这个$("#input_level")里面放的是select的总量
3.xxx.js中lay.find('.modal-body').append($("#level").show());的这个代码是说在这个页面后面添加id为level的页面,也就是xxx.jsp中的
<div id="level" style="padding-left:10px; padding-right:10px; display:none;" >
4.然后接下来就是ajax的调用,这个其实就是返回json的成功与失败以及信息
$.ajax({
url: '/schedule/adcreative/updateCreativeLevel',
dataType: 'json',
cache: false,
type: 'get',
data : {
adCreativeId : adCreativeId,
level:level,
userId: GLOBAL.userId,
serviceToken: GLOBAL.serviceToken
},
success: function(json) {
if (json.success == true) {
modAlert({
title : '提示',
content : '修改优先级成功'
})
table.reset({});
} else {
modAlert({
title : '提示',
content : json.failMsg
})
}
},
error: function() {
modAlert({
title : '提示',
content : '网络异常,请稍后在试。',
})
}
});
});
其中
url:指的是这个ajax的调用异步调用后台的那一段代码
dataType:返回的类型是json的类型
cache:没有缓存数据
type:得到数据的方式
data : {
adCreativeId : adCreativeId,
level:level,
userId: GLOBAL.userId,
serviceToken: GLOBAL.serviceToken
},
里面传入数据的参数,我们可以在controller里面只接收其中的一部分数据就可以了
其中我们可以只接收adCreativeId的这个数据
success: function(json) {
if (json.success == true) {
modAlert({
title : '提示',
content : '修改优先级成功'
})
table.reset({});
} else {
modAlert({
title : '提示',
content : json.failMsg
})
}
},
error: function() {
modAlert({
title : '提示',
content : '网络异常,请稍后在试。',
})
}
其中success是成功的时候返回的值
erro是失败的时候返回的值
table.reset({});这个是重新刷新页面的方法,应为有些页面只有在刷新一下,才可以看到真实的值
接下来,我们来调用如何调用function的方法
接下来我们先来看xxx.jsp中的一部分代码
第一段:
<a class="btn btn-default btn-xs" href="javascript:;" mi-node-data="#{campaignId}" mi-node-level="" mi-node-type="alllevel" mi-node-param="campaignId">
<i class="fa fa-level-up" aria-hidden="true"></i>
</a>
第二段:
<div id="alllevel" style="padding-left:10px; padding-right:10px; display:none;" >
<form>
<div class="row form-group">
<div class="col-md-offset-2 col-sm-1 form-control-static"></div>
<div class="col-sm-8">
<div class="form-group">
<label class="col-sm-3 control-label">优先级:</label>
<div class="col-sm-6 mi-radio-right">
<select class="form-control" id="input_level" name="level">
<c:forEach var="value" items="${levels}">
<option value="${value}" selected="selected">${value} </option>
</c:forEach>
</select>
</div>
</div>
</div>
</div>
<div class="row form-group">
<div class="col-md-offset-2 col-sm-1 form-control-static"></div>
<div class="col-sm-8">
<div class="form-group">
<label class="col-sm-8 control-label">备注:最高优先级为1,最低优先级为5</label>
</div>
</div>
</div>
</form>
</div>
在xxx.js中调用的代码
$("body").on('click' ,'a[mi-node-type="alllevel"]', function(){
var campaignId = $(this).attr('mi-node-data');
$.ajax({
url: '/schedule/campaign/getCampaignMinLevel',
dataType: 'json',
cache: false,
type: 'get',
data : {
campaignId : campaignId,
userId: GLOBAL.userId,
serviceToken: GLOBAL.serviceToken
},
success: function(json) {
if (json.success == true) {
func(campaignId,json.result)
} else {
modAlert({
title : '提示',
content : json.failMsg
})
}
},
error: function() {
modAlert({
title : '提示',
content : '网络异常,请稍后在试。',
})
}
});
});
var func = function(myCampaignId,myLevel){
var campaignId = myCampaignId;
var level = myLevel;
$("#input_level").val(level);
var lay = modConfirm({
title: '',
content:'',
yesBtn: '确 定',
showsmall: ''
})
//下面这行语句就是把下面的jsp的弹出窗口添加进来
lay.find('.modal-body').append($("#alllevel").show());
lay.on("onYes",function(){
var level = $("#input_level").val().trim();
if (level == null || level == ""){
modAlert({
title : '提示',
content : '优先级不能为空!',
})
return;
}
$.ajax({
url: '/schedule/campaign/updateCampaignLevel',
dataType: 'json',
cache: false,
type: 'get',
data : {
campaignId : campaignId,
level:level,
userId: GLOBAL.userId,
serviceToken: GLOBAL.serviceToken
},
success: function(json) {
if (json.success == true) {
modAlert({
title : '提示',
content : '修改优先级成功'
})
} else {
modAlert({
title : '提示',
content : json.failMsg
})
}
},
error: function() {
modAlert({
title : '提示',
content : '网络异常,请稍后在试。',
})
}
});
});
};
其中我们通过xxx.jsp中的mi-node-type来找到xxx.js来找到这段代码
然后成功的时候调用的是这个func(campaignId,json.result)方法,
我们可以看到这个func的方法的参数的第二个就是json的result的值,
是由于json都是k-v的类型的数据,所有我们可以通过json.result的数据值
然后后面都可以,我们这里面要记住的是,我们每一个人通过ajax的时候,
其实这个时候,我们每一个人都只需要关心json的是否成功以及msg的数据即可,
我们不需要想是否通过json来列出了数据库中的数据,我们不需要关心,因为这个
是只关心返回值的正确性,而由于异步调用,只是调用这一块的数据,对整个页面的数据
并没有进行修改,所以我们不需要考虑这些,可以留给前端的人进行考虑
javascript的js调用的更多相关文章
- JS调用水晶报表打印翻页按钮事件
默认的水晶报表打印按钮.翻页按钮太小,并且样式不好调整,考虑自己做一个按钮,然后调用水晶报表的按钮事件. 在实际操作中发现可以在.net按钮的服务器端事件中调用翻页方法: CrystalReportV ...
- 意外作出了一个javascript的服务器,可以通过js调用并执行任何java(包括 所有java 内核基本库)及C#类库,并最终由 C# 执行你提交的javascript代码! 不敢藏私,特与大家分
最近研发BDC 云开发部署平台的数据路由及服务管理器意外作出了一个javascript的服务器,可以通过js调用并执行任何java(包括 所有java 内核基本库)及C#类库,并最终由 C# 执行你提 ...
- 【HANA系列】SAP HANA XS使用JavaScript(JS)调用存储过程(Procedures)
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP HANA XS使用Jav ...
- iOS JS 交互之利用系统JSContext实现 JS调用OC方法以及Objective-C调用JavaScript方法
ios js 交互分为两块: 1.oc调用js 这一块实现起来比较简单, 我的项目中加载的是本地的html,js,css,需要注意的是当你向工程中拖入这些文件时,选择拷贝到工程中,(拖入的文件夹是蓝色 ...
- 【HANA系列】【第六篇】SAP HANA XS使用JavaScript(JS)调用存储过程(Procedures)
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列][第六篇]SAP HANA XS ...
- iOS开发--JS调用原生OC篇
JS调用原生OC篇 方式一(反正我不用) 第一种方式是用JS发起一个假的URL请求,然后利用UIWebView的代理方法拦截这次请求,然后再做相应的处理. 我写了一个简单的HTML网页和一个btn点击 ...
- 通过js调用android原生方法
有时候我们有这样一个需求,监听html中控件的一些事件.例如点击html中某个按钮,跳转到别的activity,复制某段文本. 首先是对webview的设置: myWebView = (WebView ...
- js调用php和php调用js的方法举例
js调用php和php调用js的方法举例1 JS方式调用PHP文件并取得php中的值 举一个简单的例子来说明: 如在页面a.html中用下面这句调用: <script type="te ...
- android webView开发之js调用java代码示例
1.webView设置 webView.getSettings().setJavaScriptEnabled(true);//设置支持js webView.addJavascriptInterface ...
随机推荐
- html中的兼容 & 如何对网站的文件和资源进行优化
一.1.双边距 BUG float引起的 使用display 2.超链接hover 点击后失效 使用正确的书写顺序 link visited hover active (可简单看成由 爱生恨 lo ...
- 解决dubbo的服务发布注解@service不能和事务注解不能共用的方案
最近在项目的开发中遇到了一个问题,就是服务提供方使用@service发布dubbo服务时候,服务消费方@Reference无法注入bean导致空指针异常的问题.分析原因为@service注解并没有将服 ...
- mysql 5.6 zip安装,启动失败,1067错误
在使用mysql5.6 zip压缩包安装mysql过程中,启动过程,老是卡在1067启动错误上,翻看网上各种解决方案,卸载干净重装,重启,都不管用. 网上各种教程都是新建 my.ini mysql 配 ...
- failed: No module named 'catkin_pkg' Make sure that you have installed "catkin_pkg"
https://stackoverflow.com/questions/43024337/why-this-error-when-i-try-to-create-workspaces-in-ros# ...
- IOS 通过 代码 自定义cell(Cell的高度不一致)(优化性能)
创建cell的步骤 1.新建一个继承自UITabelViewCell的类 2.重写 initWithStyle:ReuseIdentifier: 方法 添加所有需要显示的子控件(不需要设置子控件的数据 ...
- 进程管理—进程描述符(task_struct)
http://blog.csdn.net/qq_26768741/article/details/54348586 当把一个程序加载到内存当中,此时,这个时候就有了进程,关于进程,有一个相关的叫做进程 ...
- 【CCPC-Wannafly Winter Camp Day4 (Div1) F】小小马(分类讨论)
点此看题面 大致题意: 给你一张\(n*m\)的棋盘,问你一匹马在两个点中是否存在一条经过黑白格子数目相等的路径. 简化题目 首先,我们来简化一下题目. 考虑到马每次走的时候,所经过的格子的颜色必然发 ...
- 2018.8.17 关于JavaScript的几种常见的全局函数
JavaScript常见的全局函数 <!doctype html> <html lang="en"> <head> <meta chars ...
- Nginx + uWSGI + web.py 搭建示例
(1)安装Nginx1.1 下载nginx-1.0.5.tar.gz并解压1.2 ./configure (也可以增加--prefix= path指定安装路径)此时有可能会提示缺少pcre支持,如果要 ...
- Linux(二) - Unix&Linux 基本概念
主机 = 内核 + 实用工具 内核(kernel) 当计算机启动时,计算机要经历一系列动作,这些动作构成了引导过程.引导过程的最后一个动作是启动一个非常复杂的程序,该程序就被称为内核(Kernel) ...