vue实战(一):利用vue与ajax实现增删改查:

<%@ page pageEncoding="UTF-8" language="java" %>
<%@ include file="../commons/taglib.jsp" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="zh-CN">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta http-equiv="Expires" content="0">
<meta http-equiv="Cache-Control" content="no-cache"> <link rel="stylesheet" href="${ctxStatic}/css/bootstrap.min.css">
<script type="text/javascript" src="${ctxStatic}/js/jquery.min.js"></script>
<script type="text/javascript" src="${ctxStatic}/js/bootstrap.min.js"></script>
<script type="text/javascript" src="${ctxStatic}/js/common.js"></script>
<script type="text/javascript" src="${ctx}/static/js/vue.js"></script>
<script type="text/javascript">
var getUrl='${ctx}/distributor/getRate';
var saveUrl= '${ctx}/distributor/saveRate';
var rate = [];
var vm ;
var rates ='';
$.ajax({
url : getUrl,
async : false,
dataType: 'json',
success: function(data2){
rate = data2;
}
});
console.log(rate);
$(function(){
vm = new Vue({
el: "#app",
data: {
rates : rate,
newRate:{
startMoney:'',
endMoney:'',
rate:''
},
myShow:false
} ,
methods: {
saveRate: function(){
rates = JSON.stringify(this.rates);
console.log(rates);
$.ajax({
url: saveUrl,
dataType: 'json',
type: 'post',
data:{
rate:rates
},
success:function(data){
console.log(data)
},
error:function(err){
console.log(err)
}
})
},
delRate: function(e){
var that = e.currentTarget;
console.log(e.currentTarget);
delId = that.id
this.rates.splice(delId,1);
},
addRate: function() {
this.myShow =true;
console.log(this.rates);
},
sureRate :function() {
this.myShow = false; //隐藏输入框
rates = this.rates;
newRate = this.newRate;
var newStartMoney = parseInt(newRate.startMoney); //输入的开始金额
var newEndMoney = parseInt(newRate.endMoney);// 输入的结束金额
var new_rate = parseInt(newRate.rate); // 输入的返佣比例
if(rates.length == 0){ //当一行数据都没有的时候
if(newStartMoney > newEndMoney){
alert("输入的startmoney必须小于endMoney");
return false;
}else if(new_rate <= 0 || new_rate >1){
alert("返佣比例必须在0到1之间")
return false;
}else{
var newRate2 ={
startMoney: newRate.startMoney,
endMoney: newRate.endMoney,
rate: newRate.rate
}
rates.push(newRate2);
}
}else{ //有数据的时候
var beforeEndMoney = parseInt(rates[rates.length-1].endMoney); //前一项的结束金额
if(newStartMoney < beforeEndMoney){
alert("开始金额必须大于等于前一项的结束金额");
return false;
}else if(newStartMoney > newEndMoney){
alert("开始金额必须小于结束金额");
return false;
}else if(new_rate <= 0 || new_rate >1){
alert("返佣比例必须在0到1之间")
return false;
}
else{
var newRate2 ={ //定义一个新的对象赋值,如果直接写 newRate2 = newRate的话,newRate2 其实只是一个相当于指针的东西,只是指向了newRate的值,如果newRate的值改变了,newRate2也会改变。
startMoney: newRate.startMoney,
endMoney: newRate.endMoney,
rate: newRate.rate
}
rates.push(newRate2);
} }
// 将输入框对象的值都设置为空,为下一次输入作准备
this.newRate.startMoney = '';
this.newRate.endMoney = '';
this.newRate.rate = '';
}
} });
});
</script> <style> </style>
<body id="app">
<table>
<thead>
<tr>
<th colspan="3">订单金额区间(元)</th><th colspan="1">返佣比例(%)</th><th>操作</th>
</tr>
</thead>
<tbody>
<tr v-for="rate in rates">
<td>{{rate.startMoney}}</td>
<td>~</td>
<td>{{rate.endMoney}}</td>
<td>{{rate.rate}}</td>
<td><button @click = "delRate" id="{{$index}}">删除</button></td> <!-- 这里的index索引方法要注意 -->
</tr>
<tr v-show="myShow">
<td><input type="text" v-model="newRate.startMoney"></td>
<td>~</td>
<td><input type="text" v-model="newRate.endMoney"></td>
<td><input type="text" v-model="newRate.rate"></td>
<td><button @click = "sureRate">确定</button></td>
</tr>
</tbody>
</table>
<button @click="addRate">新增</button> <button @click="saveRate">保存</button>
</body>
</html>

本次项目的注意点:

1:ajax 的使用不熟练

2:删除方法,可以使用索引,为每一行设置一个id属性值,然后删除总数据id属性值的那个项。

3:在新增项中,要注意js中,例如a=b中 "="  其实相当于一个指针,当b的值变化时,a也会改变(a其实并没有值),这个时候我们要将a的具体属性值都要设置才行。

vue实战(一):利用vue与ajax实现增删改查的更多相关文章

  1. Android(java)学习笔记193:利用谷歌API对数据库增删改查(推荐使用)

    接下来我们通过项目案例来介绍:这个利用谷歌API对数据库增删改查 1.首先项目图: 2.这里的布局文件activity_main.xml: <LinearLayout xmlns:android ...

  2. ajax参考增删改查

    AJAX做增删改查详细!   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "htt ...

  3. C#利用WinForm调用WebServices实现增删改查

    实习导师要求做一个项目,用Winform调用WebServices实现增删改查的功能.写下这篇博客,当做是这个项目的总结.如果您有什么建议,可以给我留言.欢迎指正. 1.首先,我接到这个项目的时候,根 ...

  4. Android(java)学习笔记136:利用谷歌API对数据库增删改查(推荐使用)

    接下来我们通过项目案例来介绍:这个利用谷歌API对数据库增删改查 1. 首先项目图: 2. 这里的布局文件activity_main.xml: <LinearLayout xmlns:andro ...

  5. Vue+Mock.js模拟登录和表格的增删改查

    有三类人不适合此篇文章: "喜欢站在道德制高点的圣母婊" -- 适合去教堂 "无理取闹的键盘侠" -- 国际新闻版块欢迎你去 "有一定基础但又喜欢逼逼 ...

  6. MVC中的Ajax与增删改查

    自入手新项目以来,一直处于加班状态,博客也有两周没更,刚刚完成项目的两个模组,稍有喘息之机,写写关于项目中 的增删改查,这算是一个老生常谈的问题了,就连基本的教材书上都有.刚看书的时候,以为 没什么可 ...

  7. MVC中的Ajax与增删改查(一)

    自入手新项目以来,一直处于加班状态,博客也有两周没更,刚刚完成项目的两个模组,稍有喘息之机,写写关于项目中 的增删改查,这算是一个老生常谈的问题了,就连基本的教材书上都有.刚看书的时候,以为 没什么可 ...

  8. JDBC 1 利用Statement对数据库进行增删改查

    准备工作 1新建po类:User private int id; private String name; private String pwd; set,get方法省略 2  新建UserDao类, ...

  9. 利用Servlet做一套增删改查

    真的,稳住,考上研,利用两年逆袭.一步一步来,实在不行,最后最差也不过就是就回家种地,想想也不错. 前期准备配置 建一个动态web项目 新建Dynamic Web ProjectFile->Ne ...

随机推荐

  1. input上传图片并显示

    html: <div id="click"><img> </div><!--照片预览的div --> <div class=& ...

  2. iOS开发CGRectGetMidX. CGRectGetMidY.CGRectGetMinY. CGRectGetMaxY. CGRectGetMinX. CGRectGetMaxX的使用

    [iOS开发]iOS开发CGRectGetMidX. CGRectGetMidY.CGRectGetMinY. CGRectGetMaxY. CGRectGetMinX. CGRectGetMaxX的 ...

  3. jquery mobile 移动web(1)

    轻量级框架jQuery Mobile 所需文件 <link rel="stylesheet" href="jquery.mobile-1.1.2/jquery.mo ...

  4. 对象API

    遍历对象里的每个元素 var obj ={ a:32, b:12, c :342 } for (const key of obj){ if(obj.hasOwnProperty(key)){ cons ...

  5. 使用Cygwin在WIN系统下处理文本常用命令

    1.打开Cygwin,把需要处理的文本复制你的安装目录例如:D:\cygwin\home\Administrator 使用 ls命令查看根目录文件 2.现在我们就可以对1.txt文本进行操作, 3.我 ...

  6. Cacti 学习笔记

    Cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户.因此,snmp和rrdto ...

  7. Hadoop(20)-MapReduce框架原理-OutputFormat

    1.outputFormat接口实现类 2.自定义outputFormat 步骤: 1). 定义一个类继承FileOutputFormat 2). 定义一个类继承RecordWrite,重写write ...

  8. jenkins+maven+docker集成java发布(一)自动发布

    JAVA项目持续集成发布 标签(空格分隔): java jenkins 微服务中持续集成自动发布是很重要的一个环节,将不同的模块应用自动部署到一台或者N台服务器中如果采用人工部署的方式不太现实 git ...

  9. 自己动手编写 Dockerfile 构建自定义的Jenkins

    1.构建jenkins 镜像 vim Dockerfile FROM jenkins  USER root ARG dockerGid=999  RUN echo "docker:x:${d ...

  10. codeblocks编译出错问题的解答!(编译c++ 或者c程序)

    典型错误:https://blog.csdn.net/jingmiaa/article/details/52054204 MinGW下载并配置gcc/g++编译环境:https://blog.csdn ...