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 ...
随机推荐
- spoon kettle连接数据库失败解决方法
Driver class 'oracle.jdbc.driver.OracleDriver' could not be found, make sure the 'Oracle' driver (ja ...
- Android触摸事件MotionEvent详解
触摸事件MotionEvent在用户交互中,占着非常重要的地位.首先,来看看MotionEvent中封装的一些常用的事件常量,它定义了触摸事件的不同类型. 1.单点触摸按下动作 public stat ...
- instanceof和相关函数
instanceof:如果左边对象是右边类型所表示类(或任意一子类)的一个实例,则返回true,否则false.判断左边真实类型是不是右边的类或它的派生类. //实例一 Object o= new L ...
- PHP文件是什么?如何打开PHP文件?
在平时我们可能会碰到过php文件,可是很多用户不知道php文件是什么文件?也不知道怎么打开php文件?为了满足一些用户的好奇心,小编现在就给大家讲解php文件以及如何打开php文件的方法. 1.PHP ...
- API:access_token
access_token存在意义: 1.身份验证(一个channel_id一般有0个或1个有效的access_token) 2.限制用户访问服务器数据的有效期 3.限制用户访问权限 access_ ...
- TP5.1:数据库的增删改查操作(基于面向对象操作)
我们现实中对数据库的增删改查操作,都是使用模型类进行操作的(表名::),也就是面向对象操作,只有底层的代码用的是数据库操作(Db::table('表名')) 下面我将贴出模型类进行的增删改查操作,通过 ...
- ubuntu 显示隐藏文件
原文链接 http://blog.csdn.net/happyjiahan/article/details/6023496 方法1.使用命令ls -a显示所有的文件,包括隐藏文件 方法2.在桌面化操作 ...
- BZOJ 2735: 世博会 主席树+切比雪夫距离转曼哈顿距离
2735: 世博会 Time Limit: 20 Sec Memory Limit: 128 MBSubmit: 124 Solved: 51[Submit][Status][Discuss] D ...
- 修改jupyter notebook的工作路径
两种方法 一 修改jupyter notebook快捷方式的属性 ①根据下图找到jupyter的快捷方式:jupyter notebook→更多→打开文件位置 ②右键打开属性-将目标一栏中最后的%US ...
- MySQL latch小结
lock和latch的比较 对于INNODB存储引擎中的latch可以通过命令 SHOW ENGINE INNODB MUTEX 看到latch的更多信息 说明: 列Type显示的总是 InnoD ...