Input输入框

Input 为受控组件,它总会显示 Vue 绑定值

通常情况下,应当处理 input 事件,并更新组件的绑定值(或使用v-model)。否则,输入框内显示的值将不会改变。

不支持 v-model 修饰符。

支持disabled

  clearable(一键清空,默认false)

  show-password(隐藏显示的密码输入框)

<el-input placeholder="请输入密码" v-model="input" show-password>
</el-input>
<script>
export default { data() { return { input: '' } } } 
</script>

使用icon

prefix-icon 首部添加icon

suffix-icon 尾部添加icon

<div class="demo-input-suffix"> 
<el-input placeholder="请选择日期" suffix-icon="el-icon-date" v-model="input1"> </el-input> 
<el-input placeholder="请输入内容" prefix-icon="el-icon-search" v-model="input2"> </el-input>
</div>

可以用slot进行处理

<div class="demo-input-suffix"> 
<el-input placeholder="请选择日期" v-model="input3"> <i slot="suffix" class="el-input__icon el-icon-date"></i> </el-input>
<el-input placeholder="请输入内容" v-model="input4"> <i slot="prefix" class="el-input__icon el-icon-search"></i> </el-input> 
</div>

type=‘textarea’,input文本域

可以用rows属性控制文本域高度

通过设置 autosize 属性可以使得文本域的高度能够根据文本内容自动进行调整,并且 autosize 还可以设定为一个对象,指定最小行数和最大行数。

autosize,:autosize="{ minRows: 2, maxRows: 4}"

 

复合型输入框

<div> 
<el-input placeholder="请输入内容" v-model="input1">
<template slot="prepend">Http://</template> 
</el-input> 
</div> 
<div style="margin-top: 15px;"> 
<el-input placeholder="请输入内容" v-model="input2">
<template slot="append">.com</template> 
</el-input>
</div>
<div style="margin-top: 15px;"> 
<el-input placeholder="请输入内容" v-model="input3" class="input-with-select"> 
<el-select v-model="select" slot="prepend" placeholder="请选择"> 
<el-option label="餐厅名" value="1"></el-option> 
<el-option label="订单号" value="2"></el-option> 
<el-option label="用户电话" value="3"></el-option>
</el-select> 
<el-button slot="append" icon="el-icon-search"></el-button> 
</el-input>
</div>

可通过 size 属性指定输入框的尺寸,除了默认的大小外,还提供了 large、small 和 mini 三种尺寸。

 autocomplete 是一个可带输入建议的输入框组件,fetch-suggestions 是一个返回输入建议的方法属性,如 querySearch(queryString, cb),在该方法中你可以在你的输入建议数据准备好时通过 cb(data) 返回到 autocomplete 组件中。

<el-autocomplete class="inline-input" v-model="state1" :fetch-suggestions="querySearch" placeholder="请输入内容" @select="handleSelect" ></el-autocomplete>
querySearch(queryString, cb) { var restaurants = this.restaurants; var results = queryString ? restaurants.filter(this.createFilter(queryString)) : restaurants; // 调用 callback 返回建议列表的数据 cb(results); }, 
createFilter(queryString) { return (restaurant) => { return (restaurant.value.toLowerCase().indexOf(queryString.toLowerCase()) === 0); }; },

补充一下

filter方法,这里这么写是为了把queryString(input框的输入值)传参到内嵌的箭头函数去使用,filter函数的参数,前三个默认是调用元素,索引,对应的数组对象,没办法直接传参进该函数。

上面的箭头函数可以简写成

return restaurant =>

restaurant.value.toLowerCase().indexOf(queryString.toLowerCase()) === 0

select
maxlength
minlength
text
textarea
maxlength
show-word-limit