最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

vue实现单选和多选功能

来源:懂视网 责编:小OO 时间:2020-11-27 22:32:51
文档

vue实现单选和多选功能

本文实例为大家分享了vue实现单选和多选功能的具体代码,供大家参考,具体内容如下:<。= 0) { self.checkValue = self.items[0].value;self.checkId = 'food-' + self.items[0].id } }.setCheckValue: function (item) { this.checkId = 'food-' + item.id;} .showCheck: function () { console.log(this.checkId) } }.mounted: function () { this.initData();} })<;/script>;<;/body>;<;/html>;
推荐度:
导读本文实例为大家分享了vue实现单选和多选功能的具体代码,供大家参考,具体内容如下:<。= 0) { self.checkValue = self.items[0].value;self.checkId = 'food-' + self.items[0].id } }.setCheckValue: function (item) { this.checkId = 'food-' + item.id;} .showCheck: function () { console.log(this.checkId) } }.mounted: function () { this.initData();} })<;/script>;<;/body>;<;/html>;

本文实例为大家分享了vue实现单选和多选功能的具体代码,供大家参考,具体内容如下

<!DOCTYPE html>
<html lang="en">

<head>
 <meta charset="UTF-8">
 <meta>
 <title>Document</title>
 <script src="../vue.js"></script>
 <style>
 ul, li {
 list-style-type: none;
 }

 * {
 margin: 0;
 padding: 0;
 }

 .border-1px {
 position: relative;
 }

 .border-1px:after {
 display: block;
 position: absolute;
 left: 0;
 bottom: 0;
 width: 100%;
 border-top: 1px solid rgba(7, 17, 27, .1);
 content: ' ';
 }

 @media (-webkit-min-device-pixel-ratio: 1.5),(min-device-pixel-ratio: 1.5) {
 .border-1px::after {
 -webkit-transform: scaleY(0.7);
 transform: scaleY(0.7);
 }
 }

 @media (-webkit-min-device-pixel-ratio: 2),(min-device-pixel-ratio: 2) {
 .border-1px ::after {
 -webkit-transform: scaleY(0.5);
 transform: scaleY(0.5);
 }
 }

 #example {
 margin: 20px;
 }

 h3 {
 font-size: 26px;
 margin-left: 20px;
 height: 60px;
 }

 .self-radio {
 display: none;
 }

 .self-radio + label {
 -webkit-appearance: none;
 background-color: #fff;
 border: 1px solid #aaa;
 border-radius: 50px;
 display: inline-block;
 position: relative;
 width: 30px;
 height: 30px;
 box-sizing: border-box;
 }

 .self-radio:checked + label {
 border: 1px #47d9bf solid;
 }

 .self-radio:checked + label:after {
 position: absolute;
 top: 9px;
 left: 9px;
 content: ' ';
 width: 10px;
 height: 10px;
 border-radius: 50px;
 background: #47d9bf;
 box-shadow: 0px 0px 5px 0px #47d9bf;
 }

 .check-area {
 display: inline-block;
 width: 400px;
 padding: 12px 20px;
 border: 1px solid #aaa;
 border-top-left-radius: 4px;
 border-top-right-radius: 4px;
 }

 li {
 height: 60px;
 }

 li .self-radio + label {
 vertical-align: middle;
 }

 li span {
 margin-left: 20px;
 display: inline-block;
 line-height: 60px;
 font-size: 22px;
 }

 p {
 height: 60px;
 line-height: 60px;
 margin-left: 20px;
 }

 p span {
 color: #f00;
 }

 .btn {
 margin: 20px auto;
 width: 100%;
 text-align: center;
 }

 .btn button {
 width: 120px;
 height: 40px;
 line-height: 30px;
 font-size: 16px;
 color: #fff;
 background: #47d9bf;
 border: 1px #23d5b6 solid;
 border-radius: 6px;
 text-align: center;
 outline: none;
 }

 .btn button:hover {
 background: #23d5b6;
 }
 </style>
</head>

<body>
<div id="example">
 <h3>单选按钮</h3>
 <div class="check-area" v-show="items.length!=0">
 <ul>
 <li class="border-1px" v-for="(item,index) in items">
 <input class="self-radio" type="radio"
 :id="'radio-'+item.id"
 :data-id="'food-'+item.id" name="radio"
 :checked="index==0"
 :value="item.value"
 v-model="checkValue">
 <label :for="'radio-'+item.id" @click="setCheckValue(item)"></label>
 <span>{{item.value}}</span>
 </li>
 </ul>
 <p>您选择了:<span>{{checkValue}}</span></p>
 <div class="btn">
 <button @click="showCheck(checkId)">按钮</button>
 <span>{{checkId}}</span>
 </div>
 </div>
</div>
<script>
 var itemData = [{id: '20170811001', value: '香蕉'},
 {id: '20170811002', value: '苹果'},
 {
 id: '20170811003',
 value: '梨子'
 }, {id: '20170811004', value: '葡萄'}]
 //itemData = [];
 var vm = new Vue({
 el: '#example',
 data: {
 items: '',
 checkValue: '',
 checkId: ''
 },
 methods: {
 init: function () {

 },
 initData: function () {
 var self = this;
 self.items = itemData;
 if (itemData.length != 0) {
 self.checkValue = self.items[0].value;
 self.checkId = 'food-' + self.items[0].id
 }
 },
 setCheckValue: function (item) {
 this.checkId = 'food-' + item.id;
 }
 ,
 showCheck: function () {
 console.log(this.checkId)
 }
 },
 mounted: function () {
 this.initData();
 }
 })

</script>
</body>

</html>


vue实现多选功能

<!DOCTYPE html>
<html lang="en">

<head>
 <meta charset="UTF-8">
 <meta>
 <title>Document</title>
 <script src="../vue.js"></script>
 <style>
 ul, li {
 list-style-type: none;
 }

 * {
 margin: 0;
 padding: 0;
 }

 .border-1px {
 position: relative;
 }

 .border-1px:after {
 display: block;
 position: absolute;
 left: 0;
 bottom: 0;
 width: 100%;
 border-top: 1px solid rgba(7, 17, 27, .1);
 content: ' ';
 }

 @media (-webkit-min-device-pixel-ratio: 1.5),(min-device-pixel-ratio: 1.5) {
 .border-1px::after {
 -webkit-transform: scaleY(0.7);
 transform: scaleY(0.7);
 }
 }

 @media (-webkit-min-device-pixel-ratio: 2),(min-device-pixel-ratio: 2) {
 .border-1px ::after {
 -webkit-transform: scaleY(0.5);
 transform: scaleY(0.5);
 }
 }

 #example {
 margin: 20px;
 }

 h3 {
 font-size: 26px;
 margin-left: 20px;
 height: 60px;
 }

 .self-checkbox {
 display: none;
 }

 .self-checkbox + label {
 margin-top: 16px;
 -webkit-appearance: none;
 background-color: #fff;
 border: 2px solid #aaa;
 border-radius: 5px;
 display: inline-block;
 position: relative;
 width: 30px;
 height: 30px;
 box-sizing: border-box;
 vertical-align: top;
 }

 .self-checkbox:checked + label {
 border: 2px #47d9bf solid;
 }

 .self-checkbox:checked + label:after {
 display: inline-block;
 text-align: center;
 content: '√';
 width: 100%;
 height: 30px;
 line-height: 26px;
 color: #47d9bf;
 font-size: 18px;
 text-shadow: 0px 0px 5px #47d9bf;
 }

 .check-area {
 display: inline-block;
 width: 400px;
 padding: 12px 20px;
 border: 1px solid #aaa;
 border-top-left-radius: 4px;
 border-top-right-radius: 4px;
 }

 li {
 height: 60px;
 }

 li .self-radio + label {
 vertical-align: middle;
 }

 li span {
 margin-left: 20px;
 display: inline-block;
 line-height: 60px;
 font-size: 22px;
 }

 p {
 height: 60px;
 line-height: 60px;
 margin-left: 20px;
 }

 p span {
 color: #f00;
 }

 .btn {
 margin: 20px auto;
 width: 100%;
 text-align: center;
 }

 .btn button {
 width: 120px;
 height: 40px;
 line-height: 30px;
 font-size: 16px;
 color: #fff;
 background: #47d9bf;
 border: 1px #23d5b6 solid;
 border-radius: 6px;
 text-align: center;
 outline: none;
 }

 .btn button:hover {
 background: #23d5b6;
 }
 </style>
</head>

<body>
<div id="example">
 <h3>多选按钮</h3>
 <div class="check-area" v-show="items.length!=0">
 <ul>
 <li class="border-1px" v-for="(item,index) in items">
 <input class="self-checkbox" type="checkbox"
 :id="'checkbox-'+item.id"
 :data-id="'food-'+item.id" name="radio"
 :value="item.value"
 v-model="checkValues"
 @click="setCheckValue($event,item)">
 <label :for="'checkbox-'+item.id"></label>
 <span>{{item.value}}</span>
 </li>
 </ul>
 <p>您选择了:<span v-show="checkValues.length">{{filterCheckValues}}</span></p>
 <div class="btn">
 <button @click="showCheck(checkIds)">按钮</button>
 <span v-show="checkIds.length">{{checkIds}}</span>
 </div>
 </div>
</div>
<script>
 var itemData = [{id: '20170811001', value: '香蕉'},
 {id: '20170811002', value: '苹果'},
 {
 id: '20170811003',
 value: '梨子'
 }, {id: '20170811004', value: '葡萄'}]
 //itemData = [];
 var vm = new Vue({
 el: '#example',
 data: {
 items: '',
 checkValues: [],
 checkIds: []
 },
 computed: {
 filterCheckValues: function () {
 var value = this.checkValues;
 var reValue = '';
 for (var i = 0; i < value.length; i++) {
 reValue += value[i] + '、'
 }
 reValue = reValue.substring(0, reValue.length - 1)
 return reValue;
 }
 },
 methods: {
 initData: function () {
 var self = this;
 self.items = itemData;
 if (itemData.length != 0) {
// self.checkValues[0] = self.items[0].value;
// self.checkIds[0] = 'food-' + self.items[0].id;
 }
 },
 setCheckValue: function (ev, item) {
 var id = 'food-' + item.id;
 if (ev.target.checked) {
 this.checkIds.push(id);
 } else if (this.checkIds.indexOf(id) > -1) {
 this.checkIds.remove(id);
 }
 }
 ,
 showCheck: function () {
 console.log(this.checkIds)
 }
 },
 filter: {},
 mounted: function () {
 this.initData();
 }
 })
 Array.prototype.remove = function (val) {
 var index = this.indexOf(val);
 if (index > -1) {
 this.splice(index, 1);
 }
 };
</script>
</body>

</html>

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

vue实现单选和多选功能

本文实例为大家分享了vue实现单选和多选功能的具体代码,供大家参考,具体内容如下:<。= 0) { self.checkValue = self.items[0].value;self.checkId = 'food-' + self.items[0].id } }.setCheckValue: function (item) { this.checkId = 'food-' + item.id;} .showCheck: function () { console.log(this.checkId) } }.mounted: function () { this.initData();} })<;/script>;<;/body>;<;/html>;
推荐度:
标签: 功能 VUE 多选
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top