本来从一开始接触编程开始,自己就一直写后端,但是对于前端真的不会,但是没办法呀,公司
要做,所以,好吧,开始了写一写简单的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调用的更多相关文章

  1. JS调用水晶报表打印翻页按钮事件

    默认的水晶报表打印按钮.翻页按钮太小,并且样式不好调整,考虑自己做一个按钮,然后调用水晶报表的按钮事件. 在实际操作中发现可以在.net按钮的服务器端事件中调用翻页方法: CrystalReportV ...

  2. 意外作出了一个javascript的服务器,可以通过js调用并执行任何java(包括 所有java 内核基本库)及C#类库,并最终由 C# 执行你提交的javascript代码! 不敢藏私,特与大家分

    最近研发BDC 云开发部署平台的数据路由及服务管理器意外作出了一个javascript的服务器,可以通过js调用并执行任何java(包括 所有java 内核基本库)及C#类库,并最终由 C# 执行你提 ...

  3. 【HANA系列】SAP HANA XS使用JavaScript(JS)调用存储过程(Procedures)

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP HANA XS使用Jav ...

  4. iOS JS 交互之利用系统JSContext实现 JS调用OC方法以及Objective-C调用JavaScript方法

    ios js 交互分为两块: 1.oc调用js 这一块实现起来比较简单, 我的项目中加载的是本地的html,js,css,需要注意的是当你向工程中拖入这些文件时,选择拷贝到工程中,(拖入的文件夹是蓝色 ...

  5. 【HANA系列】【第六篇】SAP HANA XS使用JavaScript(JS)调用存储过程(Procedures)

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列][第六篇]SAP HANA XS ...

  6. iOS开发--JS调用原生OC篇

    JS调用原生OC篇 方式一(反正我不用) 第一种方式是用JS发起一个假的URL请求,然后利用UIWebView的代理方法拦截这次请求,然后再做相应的处理. 我写了一个简单的HTML网页和一个btn点击 ...

  7. 通过js调用android原生方法

    有时候我们有这样一个需求,监听html中控件的一些事件.例如点击html中某个按钮,跳转到别的activity,复制某段文本. 首先是对webview的设置: myWebView = (WebView ...

  8. js调用php和php调用js的方法举例

    js调用php和php调用js的方法举例1 JS方式调用PHP文件并取得php中的值 举一个简单的例子来说明: 如在页面a.html中用下面这句调用: <script type="te ...

  9. android webView开发之js调用java代码示例

    1.webView设置 webView.getSettings().setJavaScriptEnabled(true);//设置支持js webView.addJavascriptInterface ...

随机推荐

  1. Android GreenDao清空数据库的方法

    最近在做项目的时候,为了方便测试人员测试,在应用中加入正式库和测试库切换的功能.为了防止正式库和测试库切换带来的数据冲突,切换的时候必须把当前的数据库清空.代码如下: package com.exam ...

  2. VOS3000设置落地网关优先级

    问题描述: 现在有两种套餐卡A:无限通话B:每月3000分钟两个落地网关:GW100:32线用的A套餐GW101:32线用的B套餐 比如现在是12月5号还没到月底,突然发现GW101上所剩可用通话时间 ...

  3. Python基础学习之标识符

    1.合法的Python标识符 Python标识符字符串规则和其他大部分用C编写的高级语言相似: 第一个字符必须是字母或下划线(_) 剩下的字符可以是字母和数字或下滑线 大小写敏感 标识符不能以数字开头 ...

  4. ARM实验4—按键轮询实验

    key_poll按键轮询实验 实验内容: 通过FS_4412开发板上的按键控制LED灯并打印信息. 实验目的: 熟悉开发环境的使用. 掌握猎户座4412处理器的GPIO接口, 实验平台: FS4412 ...

  5. java多线程安全

    class Ticket implements Runnable { public int sum=10; public void run() { while(true) { if(sum>0) ...

  6. 使用selenium grid分布式执行之一

    目前ui框架会做一个更新,把原有的Jenkins分布式方式换成grid方式,换成grid方式有两个好处,1.grid的资源占用比Jenkins的jnlp占用资源少 2.grid可控制不同浏览器同时跑 ...

  7. APP专项测试使用到的工具

    最近在读<大话APP测试>,我也就是把需要使用的测试点做一个总结,目前是使用的工具进行的整理,后期慢慢把工具使用案例贴出来

  8. 将一个命令的输出保存到CSV文件

    执行段: 结果段: 补充:配合不同的命令可以使工作更加简单 使用Imort-Csv命令从文件中导入结构化数据

  9. Makefile 简述

    定义 Linux 环境下的程序员如果不会使用GNU make来构建和管理自己的工程,应该不能算是一个合格的专业程序员,至少不能称得上是 Unix程序员.在 Linux(unix )环境下使用GNU 的 ...

  10. C#操作Word,写数据,插入图片

    本篇介绍的是如何在C#中往word里面写入数据. 如何在线的操作文档:  c#在线操作文档 关于Aspose.Word控件的介绍,请戳→ 介绍 首先需要去下载这个dll文件,然后引用到你的项目当中.地 ...