添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

这次给大家带来vue做出可搜索下拉框,vue做出可搜索下拉框的注意事项有哪些,下面就是实战案例,一起来看一下。

实践加深对vue的理解和运用有效途径,本文是基于vue的可搜索下拉框定制组件实现,在此记录.

二、组件代码

dropdown.vue

@keyup='search($event)' :placeholder="placeholder" />

  • :key="index">

    { {item.name}}

{ {nodatatext}}

export default {

data(){

return {

_datalist:this.itemlist.concat(),

datalist:this.itemlist.concat(),

length:this.itemlist.length

props:{

'show':{//用于外部控制组件的显示/隐藏

type:Boolean,

default:true

'itemlist':Array,

'placeholder':String,

'nodatatext':String

directives:{

'show-extend':function(el,binding,vnode){//bind和 update钩子

let value = binding.value,searchInput = null;

if(value){

el.style.display='block';

}else{//隐藏后,恢复初始状态

el.style.display='none';

searchInput = el.querySelector(".search-text");

searchInput.value = '';

vnode.context.datalist = vnode.context.itemlist;//还原渲染数据

methods:{

appClick:function(data){

this.$emit('item-click',data);

search:function(e){

let vm = this,searchvalue = e.currentTarget.value;

vm.datalist = vm.$data._datalist.filter(function(item,index,arr){

return item.name.indexOf(searchvalue) != -1;

mounted:function(){

.vue-dropdown.default-theme {

position: absolute;

left:15%;

display: none;

width: 70%;

margin: 0 auto;

margin-top: 1em;

padding: 1em;

z-index:10;

box-shadow: 0px 0px 10px #ccc;

&._self-show {

display: block!important;

.search-module {

position: relative;

.search-text {

width: 100%;

height: 30px;

padding-right: 2em;

padding-left:0.5em;

border-radius: 0.5em;

box-shadow: none;

border: 1px solid #ccc;

&:focus {

border-color: #2198f2;

.search-icon {

position: absolute;

top: 24%;

right: 0.5em;

color: #aaa;

.list-module {

max-height: 200px;

overflow-y: auto;

&._self-hide {

display: none;

margin-top: 0.5em;

padding: 0.5em;

&:hover {

cursor:pointer;

color: #fff;

background: #00a0e9;

.tip__nodata {

font-size: 12px;

margin-top: 1em;

三、组件使用

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

这次给大家带来vue做出可搜索下拉框,vue做出可搜索下拉框的注意事项有哪些,下面就是实战案例,一起来看一下。实践加深对vue的理解和运用有效途径,本文是基于vue的可搜索下拉框定制组件实现,在此记录.一、效果二、组件代码dropdown.vue@keyup='search($event)' :placeholder="placeholder" />:key="index">{{ite...
vue 、Dropdown 下拉菜单、Dropdown属性、 vue Dropdown 全部下拉菜单、 vue Dropdown 全部属性设计规则何时使用代码演示1.基本2.右键菜单 向下弹出的列表。 当页面上的操作命令过多时,用此组件可以收纳操作元素。点击或移入触点,会出现一个下拉菜单。可在列表中进行选择,并执行相应的命令。 最简单的下拉菜单。 <tem......
<? php error_reporting(0);//加上error_reporting(0);就不会弹出警告了 header("Content-type:text/html;charset=utf-8");//防止中文乱码 $con = mysqli_connect("localhost","mysql名","mysql密码","要链接的数据库名"); mysqli_query($con,'set names utf8'); if (!$con){ echo'链接数据库失败!'; ====================== 实例为可 搜索 的select选择框控件,可以实现与服务器交互,动态 搜索 。 脚本引用的jquery-editable-select插件是稍作修改的。 脚本为 php ,直接放到lampp中即可访问,供大家学习参考。 原生jquery.editable-select 插件下载地址 ====================== 插件名称:jquery-editable-select 下载地址:https://codeload.github.com/feshy2013/jquery.editable-select/zip/master
Vue 中实现一个 下拉框 自动带出另一个 下拉框 的方法,一般来说可以通过定义一个数据对象,将第一个 下拉框 的选项值与第二个 下拉框 选项值相对应的数据存储在其中,然后监听第一个 下拉框 的变化事件,当发生变化时,根据选项值更新第二个 下拉框 的选项值。 具体实现的步骤可以分为以下几步: 1. 定义一个数据对象,用来存储 下拉框 选项值的对应关系: data() { return { selected: '', options: [ {value:'apple', label:'苹果', category:'水果'}, {value:'orange', label:'橘子', category:'水果'}, {value:'carrot', label:'胡萝卜', category:'蔬菜'}, {value:'potato', label:'土豆', category:'蔬菜'} subOptions: [] 在上述代码中,selected表示第一个 下拉框 选中的选项值,options用来存储所有的选项值,subOptions用来存储第二个 下拉框 的选项值。 2. 监听第一个 下拉框 的变化事件,在事件处理程序中更新第二个 下拉框 的选项值: watch: { selected(newVal) { this.subOptions = this.options.filter(option => option.category === newVal); 在上述代码中,使用了Array的filter方法,根据第一个 下拉框 选中的选项值来筛选出匹配的选项值并存储到subOptions中。 3. 在模板中使用v-model指令来绑定数据,并使用v-for指令生成 下拉框 选项: <label>主选项:</label> <select v-model="selected"> <option v-for="option in options" :value="option.category">{{ option.category }}</option> </select> <label>子选项:</label> <select> <option v-for="option in subOptions" :value="option.value">{{ option.label }}</option> </select> 在上述代码中,v-model指令绑定了第一个 下拉框 选中的选项值,v-for指令根据数据对象循环生成选项值。第二个 下拉框 的选项值将根据第一个 下拉框 选中的选项值来变化,因此没有使用v-model指令绑定数据。 通过上述方法,即可实现一个 下拉框 自动带出另一个 下拉框 的功能。