Skip to content

Input 输入框

此组件为一个输入框,默认没有边框和样式,是专门为配合表单组件tn-form而设计的,利用它可以快速实现表单验证,输入内容,下拉选择等功能。

平台差异说明

AppH5微信小程序支付宝小程序百度小程序头条小程序QQ小程序
兼容中兼容中兼容中兼容中

基本使用

通过v-model来绑定输入框的值。

vue
<template>
  <tn-input v-model="value" />
</template>

<script>
  export default {
    data() {
      return {
        value: ''
      }
    }
  }
</script>

输入框类型

tn-input通过配置type可以修改输入框的类型,输入框的类型有以下两种:

  • textarea类型,用于输入长文本
  • text类型,普通输入框,由于HTML5或者小程序等一些特殊场景,此 type参数又可以设置为textnumberidcarddigit等值, 这些参数跟各个平台的兼容性有关,详见uni-app文档:Input 组件

Textarea模式

type参数设置为textarea,有如下两个需要注意的参数:

  • autoHeight参数可以配置为textarea输入框的高度是否随着行数增加,而自动增加输入框的高度。
  • height参数可以配置输入框的初始高度。
vue
<template>
	<tn-input v-model="value" :type="type" :border="border" :height="height" :autoHeight="autoHeight" />
</template>

<script>
	export default {
		data() {
			return {
				value: '',
				type: 'textarea',
				border: true,
				height: 100,
				autoHeight: true,
			}
		}
	}
</script>

Text模式

type设置为text,此种情况为一个单纯的输入框,但是还可以将其设置为numberidcarddigit等值,需要考虑兼容性,见上方说明

Text模式下可以设置输入框右边显示图标,通过设置showRightIconrightIcon参数去设置右边显示的图标。

vue
<template>
	<tn-input v-model="value" :type="type" :border="border" :showRightIcon="true" rightIcon="search" />
</template>

<script>
	export default {
		data() {
			return {
				value: '',
				type: 'text',
				border: true
			}
		}
	}
</script>

Password模式

type设置为password,此时输入的内容将会用点代替:

  • 如果设置了passwordIcon为true,右侧将出现一个用户切换密码显示和普通字符显示的图标。
vue
<template>
	<tn-input v-model="value" :type="type" :border="border" :passwordIcon="passwordIcon" />
</template>

<script>
	export default {
		data() {
			return {
				value: '',
				type: 'password',
				passwordIcon: true,
				border: true,
			}
		}
	}
</script>

Select下拉选择模式

type设置为select,此时组件将会在外观上呈现出Select选择器的形态,主要体现在右侧多了一个下三角图标,但是此时组件并没有内置下拉的功能, 主要是考虑到移动端的特殊性和TuniaoUI内置组件的关联性,因为想实现下拉选择,不同场景可能会使用不同的组件,比如TuniaoUI的Picker 选择器ActionSheet 操作菜单Select 列选择器等,您可以根据情况自由选择合适的组件做搭配。

  • 以上说的可以配合的组件,它们都有一个共同的通过v-model绑定弹出与收起的参数,可以同时将此参数赋值给tn-input组件的selectOpen参数, 当此参数为true(也即Select选择器打开时),右侧的下三角图标会翻转,为false时,恢复原位。
  • 监听组件的@click事件,在此将绑定选择器的参数修改为true即可。
vue
<template>
	<view class="">
		<tn-input v-model="value" :type="type" :border="border" @click="show = true" />
		<tn-action-sheet :list="actionSheetList" v-model="show" @click="actionSheetCallback"></tn-action-sheet>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				value: '',
				type: 'select',
				show: false,
				border: true,
				actionSheetList: [
					{
						text: '男'
					},
					{
						text: '女'
					},
					{
						text: '保密'
					}
				],
			}
		},
		methods: {
			// 点击actionSheet回调
			actionSheetCallback(index) {
				this.value = this.actionSheetList[index].text;
			}
		}
	}
</script>

API

Props

属性名说明类型默认值可选值
v-model用于双向绑定输入框的值String|Number--
type输入框的类型Stringtexttextarea/password/
select/number
inputAlign输入框文字对齐方式Stringleftcenter/right
placeholder输入框为空时显示的提示信息String--
placeholderStyleplaceholder的样式Stringcolor: #AAAAAA-
disabled禁用输入框Booleanfalsetrue
maxLength输入框最大可输入的长度Number255-
height输入框高度Number0-
autoHeight根据内容自动调整高度Booleantruefalse
confirmType键盘右下角按钮的文字,在typetext时生效Stringdone-
customStyle自定义输入框样式Object--
fixed固定输入框Booleanfalsetrue
focus自动聚焦输入框Booleanfalsetrue
passwordIcon显示右侧显示密码图标,在typepassword时生效Booleantruefalse
border显示边框,在typetexttextarea时生效Booleanfalsetrue
borderColor边框颜色,在typetexttextarea时生效String#dcdfe6-
selectOpen旋转右侧图标,标记当前是否开打可选项,在typeselect时生效Booleanfalsetrue
clearable是否可以清空Booleantruefalse
cursorSpacing光标与键盘之间的距离,单位pxNumber0-
selectionStart光标起始位置,自动聚焦时生效,搭配selectionEnd使用Number-1-
selectionEnd光标结束位置,自动聚焦时生效,搭配selectionStart使用Number-1-
trim自定去除两端空格Booleantruefalse
showConfirmBar显示键盘上方的完成按钮Booleantruefalse
showRightIcon显示输入框最右边的图标Booleanfalsetrue
rightIcon输入框最右边图标的名称,设置showRightIcontrue时有效String--

Slots

none

Event

事件名称说明回调参数
input输入内容时触发输入框中的值
blur输入框失去焦点时触发输入框中的值
focus输入框聚焦时触发-
confirm点击完成按钮时触发输入框中的值
click输入框点击事件-