开发者社区
社区提问意见反馈
开发者钉组织
扫描二维码
加入支付宝开发者钉组织
开发 > 组件 > 表单组件 > input 输入框
收藏
订阅更新
我的文档
设置
简介
输入框,可设置输入内容的类型、长度、显示形式等。当用户需要输入文字内容时点击文本框,它将自动打开键盘。使用文本字段来请求少量信息。
使用限制
native 渲染引擎:基础库 2.9.7 开始支持。可以通过 my.caniuse('input') 判断是否支持。
配置 "enableinpagerenderinput":"yes" 后,ios 系统支付宝客户端版本 10.5.63 及以上支持 focus="{{true}}" 自动唤起。
小程序中 input 如果父类是 position: fixed,可以加上 enablenative="{{false}}",解决输入框错位/光标上移问题。个别情况下定位问题会导致光标错位,所以需要把 false 改为 true,代码块为 enablenative="{{true}}"
confirm-type 与 enablenative 属性冲突,若希望 confirm-type 生效,enablenative 不能设定为 false,而且不能设定 always-system。
输入框是同层组件,使用时需要注意以下限制:
不支持通过修改 css 来修改光标颜色
扫码体验

使用
在线示例

属性
表格中 “-” 代表支持。
属性
类型
描述
webview 兼容性
native 兼容性
value
string
初始内容。
-
-
name
string
组件名字,用于表单提交获取数据。
-
-
type
string
input 的类型,有效值:textnumberidcarddigit(可以唤起带有小数点的数字键盘)、numberpaddigitpadidcardpadnickname
默认值: text 注意: 当启用数字键盘时,在 android 客户端上,脱离文档流(如设置了 float
position: fixed
等样式)并指定了 bottom
属性的元素会被影响(该元素会被键盘顶起)。可以采用如下方法来暂且避免这个问题:当 input 框聚焦后隐藏被影响的元素。
基础库 1.13.0 ,客户端 10.1.50 。
支持以下类型:
numberpad
digitpad
idcardpad
nickname,可通过
my.caniuse
("input.type.numberpad") 来检测。
客户端 10.5.56 , 支持以下类型:number
idcard
digit
numberpad
digitpad
idcardpad
password
boolean
是否是密码类型。 默认值: false
-
-
placeholder
string
占位符。
-
-
placeholder-style
string
指定 placeholder 的样式,可设置间距。
基础库 1.6.0
-
placeholder-class
string
指定 placeholder 的样式类。
基础库 1.6.0
-
disabled
boolean
是否禁用。 默认值: false
-
-
maxlength
number
最大长度。 默认值: 140
-
-
focus
boolean
获取焦点。 默认值: false
-
-
confirm-type
string
设置键盘右下角按钮的文字,有效值:done(显示“完成”)、go(显示“前往”)、next(显示“下一个”)、search(显示“搜索”)、send(显示“发送”),平台不同显示的文字略有差异。 注意: 只有在 type=text 时有效。 默认值: done
基础库 1.7.0
-
confirm-hold
boolean
点击键盘右下角按钮时是否保持键盘不收起状态。 默认值: false
基础库 1.7.0
-
cursor
number
指定 focus 时的光标位置。
-
-
selection-start
number
获取光标时,选中文本对应的焦点光标起始位置,需要和 selection-end 配合使用。 默认值: -1
基础库 1.7.0
-
selection-end
number
获取光标时,选中文本对应的焦点光标结束位置,需要和 selection-start 配合使用。 默认值: -1
基础库 1.7.0
-
random-number
boolean
当 type 为 number, digit, idcard 数字键盘是否随机排列。 默认值: false
基础库 1.9.0
客户端 10.5.56
controlled
boolean
是否为受控组件。为 true 时,value 内容会完全受 setdata 控制。 建议当 type 值为 text 时不要将 controlled 设置为 true,详见 bugs & tips默认值: false
基础库 1.9.0
-
always-system
boolean
是否强制使用系统键盘和 web-view 创建的 input 元素。为 true 时,confirm-type、confirm-hold 可能失效。 默认值:false
基础库 2.7.3
暂不支持
oninput
eventhandle
键盘输入时触发 input 事件,event.detail = {value: value,cursor: cursor}

版本要求cursor
字段基础库 1.14.0
-
onconfirm
eventhandle
点击键盘完成时触发,event.detail = {value: value}
-
-
onfocus
eventhandle
聚焦时触发,event.detail = {value: value}

-
-
onblur
eventhandle
失去焦点时触发(仅支持真机),event.detail = {value: value}

-
-
bug & tip
由于部分机型/部分输入法提供联想功能,造成在输入非数字类型的字符时,一次输入会连续触发多次 input 事件,且 input 事件的 event.detail.value 与用户的输入预期不符,最终导致与 controlled 提供的 受控模式 产生冲突。因此,建议当 type 值为 text 时不要将 controlled 设置为 true。
faq
如何解决 input 输入框在 ios 客户端的光标漂移问题?
步骤一:若已在 input 中设置了 enablenative 属性,删除 enablenative 属性的全部设置。 步骤二:在 app.json 文件 window 对象内,设置 "enableinpagerenderinput":"yes"
为何 input 输入框聚焦的时候出现白屏,只有键盘弹出来?
因为使用定位导致键盘把页面 input 内容顶上去了,建议使用 搜索框。 需要判断客户端机型为 安卓还是 ios,从而设置 enablenative属性,然后在 app.json 文件 window 对象内,设置 "enableinpagerenderinput":"yes"
为何 input 输入的内容没有在输入框显示?
如果是因为使用 fixed 定位导致, 建议通过设置 enablenative 属性解决。
小程序 input 输入框获取焦点时会向上推输入框,能否固定?
暂不支持。
input 输入框弹起键盘有遮挡,影响其他标签控件触发点击事件?
建议修改自定义 view 样式。
input 输入框是否支持点击事件,比如 click、tap、touchstart?
暂时不支持,可以考虑外嵌一层 view,利用 view 的 ontap 事件实现。
input 如何用 js 代码清空数据?
需要添加属性 controlled="{{true}}" ,也可以在 oninput 事件里把输入的值通过 setdata 再赋值给 value,再去 setdata 设置 value。
input 如何进行监听,如果出现不能监听问题如何解决?
可以使用 input 的 oninput 事件监听输入值,通过 e.detail.value 打印出输入值进行正则表达式匹配校验。详情请见示例代码。
如何判断 input 的 value 值是不是符合正则表示式?
使用 var reg = new regexp("\w \s", "g"); getregexp() 需要在 sjs 中使用。 sjs 脚本不能直接在 js 中引入调用
父组件如何调用子组件的 input 事件?
请参见 组件对象
input 内容跳动、延迟如何处理?
可以使用防抖动,示例代码如下:
如何在 input 设置了 disabled=true 时,修改 input 的样式 ?
修改字体颜色,会有灰蒙颜色的效果,可进行以下设置进行修改:
placeholder-class 属性可以通过 acss 设置默认 placeholder 字体颜色。
class 类选择器在 acss 中可以设置 input 框的颜色,类选择器可以设置输入的字体颜色。
凯发k8官方网娱乐官方 copyright © 2022 支付宝(杭州)信息技术有限公司  | icp证浙b2-20160559
该文档对你是否有帮助?
当前页面目录
网站地图