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 ...
随机推荐
- vue中 eCharts 自适应容器
在 vue 脚手架开发中,echarts图表自适应容器的方法: 父组件: <template> <div class="statistics_wrap"> ...
- Python 爬虫实战(二):使用 requests-html
Python 爬虫实战(一):使用 requests 和 BeautifulSoup,我们使用了 requests 做网络请求,拿到网页数据再用 BeautifulSoup 解析,就在前不久,requ ...
- CODESOFT条码设计软件如何隐藏数据源方法
作为强大的条码标签设计软件,用户在用CODESOFT设计条码标签时,有时需要根据实际情况,将条码数据源隐藏,也就是使设计与打印出来的条形码下不带有数据.那么这要怎么在CODESOFT中实现呢?下面,小 ...
- TP5.1:连接数据库(全局配置、动态配置、DSN配置)
前提: (1)在app\index\controller文件下新建一个名为Connect.php的控制器文件 (2)建立一个名为user_curd数据库,里面有一张user表,表内容为: 通过全局配置 ...
- vs2008使用mysql链接错误
原因是因为安装了64位的mysql,而开发工具室32位的,需要安装32位的开发库就可以了
- Graylog安装操作
Graylog安装操作 实验环境centos7.5系统 mem:4-8G disk:50G 关闭selinux以及firewalld 一.准备环境 1.1.java环境 下载java的j ...
- Android(java)学习笔记68:使用proguard混淆android代码
1. 当前是有些工具比如apktool,dextojar等是可以对我们android安装包进行反编译,获得源码的.为了减少被别人破解,导致源码泄露,程序被别人盗取代码,等等.我们需要对代码进行混淆,a ...
- Flashing Fluorescents(状压DP)
Flashing Fluorescents 时间限制: 1 Sec 内存限制: 128 MB提交: 56 解决: 19[提交] [状态] [讨论版] [命题人:admin] 题目描述 You ha ...
- 20145238 —《Java程序设计》—第5周学习总结
20145238 <Java程序设计>第5周学习总结 教材学习内容总结 第八章异常处理 8.1.1使用try.catch ·教材范例用户连续输入整数,输入0结束后显示输入数的平均值(代码如 ...
- R语言网络爬虫学习 基于rvest包
R语言网络爬虫学习 基于rvest包 龙君蛋君:2015年3月26日 1.背景介绍: 前几天看到有人写了一篇用R爬虫的文章,感兴趣,于是自己学习了.好吧,其实我和那篇文章R语言爬虫初尝试-基于RVES ...