input

更新时间:

提供可交互的界面,接收用户的输入,默认为单行

子组件

不支持

属性

支持通用属性

名称 类型 默认值 必填 描述
type button | checkbox | radio | text | date | speak text 支持动态修改,text 为输入法录入, speak 为语音录入
checked <boolean> false 当前组件的 checked 状态,可触发 checked 伪类,type 为 checkbox 时生效
name <string> - input 组件名称
value <string> - input 组件的值
placeholder <string> - 提示文本的内容,type 为 text | date | speak 时生效

样式

支持通用样式

名称 类型 默认值 必填 描述
color <color> #000 文本颜色
caret-color <color> #000 光标颜色
font-size <length> 43.2px 文本尺寸
text-decoration <string> underline 文本下划线,目前只支持 underline
placeholder-color <color> #000 提示文本的颜色,type 为 text | date | speak 时生效
width <length> | <percentage> - 组件宽度
height <length> | <percentage> - 组件高度

事件

支持通用事件

名称 参数 描述
change 不同 type 参数不同,具体见下方 change 事件参数 input 组件的值、状态发生改变时触发,type 为 button 时无 change 事件
focus index 获取光标返回的下标值

change 事件参数

参数 text | speak checkbox radio 备注
name
value
checked

方法

名称 参数 描述
setSpan Object 动态设置文字样式,方法的入参不是必填项 目前只支持设置 color 和 text-decoration
focus type 为 text | speak 时 生效。speak 可拉起语音输入,text 可拉起文字输入法

setSpan 参数说明如下:

属性 类型 默认值 描述
start Number - 指定开始的位置
end Number - 指定结束的位置
style Object - 设置文字样式 ,不设置样式默认组件本身的样式

示例

<template>
    <div style="flex-direction:column;">
       <input id="input" value="{{value}}" onfocus="focus"></input>
    </div>
    <div onclick="setSpan">设置文字样式</div>
</template>

<script>
  export default {
    data:{
      value:'input'
    },

    //组件获取光标后的回调值,在对应的位置插入值
    focus(index){

       //把输入框的值转为数组
       let data = String(this.value).split('')

       //在对应的位置插入对应的值
       data.splice(index,0,'插入input的值')

       //把转换后的值赋值回去给input组件的value
       this.value = data.join('');
    },

    setSpan(){
       //设置文字样式
       this.$element('input').setSpan({
          start:0,
          end:10,
          style:{
            'text-decoration':'underline',
            'color':'#000'
          }
       });
    }
  }
</script>
复制代码

示例

修改 checkbox 组件的颜色

<template>
    <div style="flex-direction:column;">
       <input checked="{{checked}}"  color='#a52a2a'  type='checkbox'></input>
    </div>
</template>

<script>
  export default {
     data:{
       checked:true
     }
  }
</script>
复制代码

示例

修改 radio 组件的颜色

<template>
    <div style="flex-direction:column;">
       <input checked="{{checked}}"  color="#399FFF"  type="radio"> </input>
    </div>
</template>

<script>
  export default {
     data:{
       checked:true
     }
  }
</script>
复制代码

input组件示例

按钮
<template>
  <div class="wrapper">
    <input type="button" class="button" value="primary" />
    <input type="button" class="button danger" value="danger" />
  </div>
</template>

<script>
export default {}
</script>

<style>
.wrapper {
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.button {
  width: 400px;
  height: 80px;
  align-items: center;
  color: #ffffff;
  background-color: #1890ff;
  border-radius: 15px;
}
.danger {
  margin-top: 10px;
  background-color: #ff7875;
}
</style>
复制代码
图标图标
图标图标
图标图标
多选框
<template>
  <div class="wrapper">
    <div class="checkbox-row">
      <input name="option" id="optionA" type="checkbox" value="optionA" />
      <label class="label" target="optionA">optionA</label>
    </div>
    <div class="checkbox-row">
      <input name="option" id="optionB" type="checkbox" value="optionB" />
      <label class="label" target="optionB">optionB</label>
    </div>
  </div>
</template>

<script>
export default {}
</script>

<style>
.wrapper {
  align-items: center;
  justify-content: center;
  flex-direction: column;
}
.checkbox-row {
  justify-content: flex-start;
}
.label {
  margin-left: 20px;
  font-size: 40px;
}
</style>
复制代码
图标图标
图标图标
图标图标
单选框
<template>
  <div class="wrapper">
    <div class="radio-row">
      <input name="option" id="optionA" type="radio" value="optionA" />
      <label class="label" target="optionA">optionA</label>
    </div>
    <div class="radio-row">
      <input name="option" id="optionB" type="radio" value="optionB" />
      <label class="label" target="optionB">optionB</label>
    </div>
  </div>
</template>

<script>
export default {}
</script>

<style>
.wrapper {
  align-items: center;
  justify-content: center;
  flex-direction: column;
}
.radio-row {
  justify-content: flex-start;
}
.label {
  margin-left: 20px;
  font-size: 40px;
}
</style>
复制代码
图标图标
图标图标
图标图标
文本输入框
<template>
  <div class="wrapper">
    <input type="text" class="input-text" placeholder="Basic usage" />
  </div>
</template>

<script>
export default {}
</script>

<style>
.wrapper {
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.input-text {
  width: 500px;
  height: 80px;
  border: 1px solid #000;
  border-radius: 10px;
  padding-left: 20px;
}
</style>
复制代码
图标图标
图标图标
图标图标
上一篇
概述
下一篇
label
以上内容对您是否有帮助?
  • 毫无帮助
  • 帮助不大
  • 一般
  • 很好
  • 非常好
意见反馈