Vue.js 实现地址管理页面思路详解(地址添加、编辑、删除和设置默认地址)


Posted in Javascript onDecember 11, 2019

1、前阶段做了这个地址管理页面,实现的过程中遇到了很多的问题,好在最后实现了,在此记录一下:

Vue.js 实现地址管理页面思路详解(地址添加、编辑、删除和设置默认地址)

首先是加载页面阶段ajax从数据库中获取数据,然后动态的显示在页面中,随后可以点击单个的编辑或删除进行相关操作,可以单击默认地址按钮进行样式切换,默认地址可以没有(单击选中和取消),但是如果设置默认地址则只能设置一个,好,下面我们来一步一步的实现。

2、我这里使用的是Vue.js,页面加载阶段很简单,直接在mounted声明一个方法,然后在方法中调用ajax请求访问数据然后通过v-for循环将数据放入到html元素中即可,这个就不多说了,直接看代码就行了,这篇文章主要是记录一下如何实现点击选中和取消radio,并实现点击过程中样式的切换。

var vm = new Vue({
 el:"#",
 data:{
 sites:[]
 },
 mounted:function() {
 this.showData();
 },
 methods:{
 showData:function(){
 jQuery.ajax({
 url:"这里写你的访问路径",
 data:"",
 type:"GET",
 dataType:"json",
 success:function(res){
 if(res.code==0){
 for(var i=0;i<res.data.addresses.length;i++){
 //将获取到的数据赋值到data中的site[]
 vm.sites.push(res.data.addresses[i]);
 }
 }else{
 alert("加载失败");
 }
 }
 })
 }
 }
})

3、首先实现radio的点击选中和取消,可以看下我单独整理的这篇文章:jQuery实现按钮的点击 全选/反选 单选框/复选框 文本框 表单验证,由于我这里用到的是Vue.js,那么看下我页面的实现代码:

<input type="radio" :id="site.addressid" name="defaultAddress" class="address_manager_content-d3-left-img" data-waschecked="true" v-if="site.isdefault=='1'" checked="checked" @click="editIsDefault(site, $event)"/>
<input type="radio" :id="site.addressid" name="defaultAddress" class="address_manager_content-d3-left-img" data-waschecked="false" v-else @click="editIsDefault(site, $event)" />

将获取到的addressid通过:id赋值到每个元素,实现每个元素对应它自己的id,为元素添加data-* 属性(点击了解data-*属性),方便获取到checked的信息,然后为每个radio添加class方便我们设置点击以后的图片切换,根据v-if判断该条地址信息是否为默认地址,在元素上添加了点击事件并传入site(每条地址的相关信息),和该地址信息dom对象。

下面是修改默认地址的方法:实现了点击选中和取消,并且点击切换后立即向服务器提交数据实现实时的数据更新。

editIsDefault:function(site,event){
 if($(event.currentTarget).data("waschecked")==true){
 $(event.currentTarget).prop("checked",false);
 $("input:radio[name='defaultAddress']").data('waschecked',false);
 $(event.currentTarget).data("waschecked",false);
 }else{
 $(event.currentTarget).prop("checked",true);
 $("input:radio[name='defaultAddress']").data('waschecked',false);
 $(event.currentTarget).data("waschecked",true);
 }
 var isDefault;
 if($(event.currentTarget).prop("checked")){
 isDefault = "1";
 }else{
 isDefault = "0";
 }
 jQuery.ajax({
 url:"这里写你自己的url",
 data:{
 addressid: site.addressid,
 name: site.name,
 phone: site.phone,
 area: site.area,
 address: site.address,
 isdefault: isDefault 
 },
 type:"GET",
 dataType:"json",
 success:function(res){
 if(res.code=="0"){
 }
 },
 error:function(){
 alert("修改默认地址失败,请刷新后重试");
 }
 })
}

4、使用CSS样式来实现radio点击选中和取消过程中图片样式的切换,我整理了另一篇文章,有兴趣的可以看一下:点击radio实现两个图片间的样式切换

我这里直接将我的代码贴一下供参考:

.address_manager_content-d3-left-img{
 /* 隐藏原有样式 */
 appearance: none;
 -webkit-appearance: none;
 outline: none;
 /* 增加新样式:未选中时 */
 display: inline-block;
 width: 20px;
 height: 20px;
 position: static;
 margin : 15px 5px 0 0!important;
 background: url(未选中时图片的url) no-repeat;
 background-size: cover;
}
.address_manager_content-d3-left-img:checked{/* 选中时 */
 background: url(选中时的图片url) no-repeat;
 background-size: cover;
}

5、实现点击以后编辑地址:(删除的话思路一样)

这个非常简单,因为每一个地址信息我们都是通过v-for循环得来的,那么我们点击修改的时候将我们获取的数组中的site传入到方法中即可,然后访问页面的时候将该条地址信息的id传过去即可,到编辑地址页面可以通过id去后台查到该条地址信息并进行地址回填就可以实现了。

<span @click="editAddress(site)">编辑</span>

editAddress:function(site){
 window.location.href="你的跳转路径(编辑地址信息的页面)?addressid=" rel="external nofollow" +site.addressid;
}

总结

以上所述是小编给大家介绍的Vue.js 实现地址管理页面(地址添加、编辑、删除和设置默认地址),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
获取任意Html元素与body之间的偏移距离 offsetTop、offsetLeft (For:IE5+ FF1 )[
Dec 22 Javascript
JS关闭窗口与JS关闭页面的几种方法小结
Dec 17 Javascript
Javascript玩转继承(三)
May 08 Javascript
bootstrap网格系统使用方法解析
Jan 13 Javascript
JS html时钟制作代码分享
Mar 03 Javascript
JS 设置Cookie 有效期 检测cookie
Jun 15 Javascript
bootstrap treeview 扩展addNode方法动态添加子节点的方法
Nov 21 Javascript
vue 解决addRoutes动态添加路由后刷新失效问题
Jul 02 Javascript
Vue 实时监听窗口变化 windowresize的两种方法
Nov 06 Javascript
JavaScript内置对象之Array的使用小结
May 12 Javascript
element-ui封装一个Table模板组件的示例
Jan 04 Javascript
vue Element-ui表格实现树形结构表格
Jun 07 Vue.js
用JS实现一个简单的打砖块游戏
Dec 11 #Javascript
js消除图片小游戏代码
Dec 11 #Javascript
详解vue中$nextTick和$forceUpdate的用法
Dec 11 #Javascript
基于jQuery实现可编辑的表格
Dec 11 #jQuery
jQuery实现可编辑的表格
Dec 11 #jQuery
vue element自定义表单验证请求后端接口验证
Dec 11 #Javascript
详解如何在JS代码中消灭for循环
Dec 11 #Javascript
You might like
PHP常用代码
2006/11/23 PHP
php中文本操作的类
2007/03/17 PHP
php array_search() 函数使用
2010/04/13 PHP
php+ajax无刷新上传图片的实现方法
2016/12/06 PHP
PHP实现支持CURL字符串证书传输的方法
2019/03/23 PHP
windows 2008r2+php5.6.28环境搭建详细过程
2019/06/18 PHP
laravel 之 Eloquent 模型修改器和序列化示例
2019/10/17 PHP
javascript 一个自定义长度的文本自动换行的函数
2007/08/19 Javascript
[原创]IE view-source 无法查看看源码 JavaScript看网页源码
2009/07/19 Javascript
JavaScript 编写匿名函数的几种方法
2010/02/21 Javascript
jQuery EasyUI API 中文文档 - MenuButton菜单按钮使用介绍
2011/10/06 Javascript
js jquery分别实现动态的文件上传操作按钮的添加和删除
2014/01/13 Javascript
javascript监听鼠标滚轮事件浅析
2014/06/05 Javascript
js锁屏解屏通过对$.ajax进行封装实现
2014/07/31 Javascript
js获取及判断键盘按键的方法
2015/12/01 Javascript
浅谈Javascript中的函数、this以及原型
2016/10/09 Javascript
Js利用prototype自定义数组方法示例
2017/10/20 Javascript
vue脚手架及vue-router基本使用
2018/04/09 Javascript
Vue模拟数据,实现路由进入商品详情页面的示例
2018/08/31 Javascript
python 读取txt,json和hdf5文件的实例
2018/06/05 Python
Python使用numpy产生正态分布随机数的向量或矩阵操作示例
2018/08/22 Python
Python实现线性判别分析(LDA)的MATLAB方式
2019/12/09 Python
Python标准库json模块和pickle模块使用详解
2020/03/10 Python
英国50岁以上人群的交友网站:Ourtime
2018/03/28 全球购物
如何将一个描述日期或日期/时间的字符串转换为一个Date对象
2015/10/13 面试题
法律专业应届生自荐信范文
2014/01/06 职场文书
基层党员干部四风问题整改方向和措施
2014/09/25 职场文书
党员民主评议总结
2014/10/20 职场文书
2015大学生求职信范文
2015/03/20 职场文书
酒店办公室主任岗位职责
2015/04/01 职场文书
功夫熊猫观后感
2015/06/10 职场文书
聘用合同范本
2015/09/21 职场文书
JavaScript中关于预编译、作用域链和闭包的理解
2021/03/31 Javascript
react中的DOM操作实现
2021/06/30 Javascript
一次MySQL启动导致的事故实战记录
2021/09/15 MySQL
详解JAVA的控制语句
2021/11/11 Java/Android