VN textarea
textarea
这是一个多行文本输入控件。
- 代码示例如下:
<!--textarea.vnml-->
<view width="100%" height="100%" flex-direction="column">
<text margin="10rpx" padding="5rpx" width="100%" height="auto" font-size="30rpx">你输入的是:{{inputValue}}</text>
<text margin="10rpx" padding="5rpx" width="100%" height="auto" font-size="30rpx">状态:{{focusState}}</text>
<text margin="10rpx" padding="5rpx" width="100%" height="auto" font-size="30rpx">确认次数:{{confirmCount}}</text>
<textarea id="eventText" placeholder="响应事件" confirm-type="done" margin="10rpx" width="auto" height="auto" font-size="30rpx" bindInput="onInput" bindFocus="onFocus" bindBlur="onBlur" bindConfirm="onConfirm" max-lines="3" border-width="1rpx" border-style="solid"></textarea>
</view>
{
"focusState": "未获取焦点",
"textCount": 0,
"confirmCount": 0,
"inputValue": ""
}
/**textarea.js**/
var eventinput;
page({
onReady: function () {
eventinput = vn.dom.getElementById('eventText');
},
onInput: function (params) {
var text = params.event.value;
vn.data.update('inputValue', text);
},
onFocus: function (params) {
vn.data.update('focusState', '获取焦点');
},
onBlur: function (params) {
vn.data.update('focusState', '未获取焦点');
},
onConfirm: function (params) {
confirmCount = vn.data.query('confirmCount');
confirmCount += 1;
vn.data.update('confirmCount', confirmCount);
}
});
类型 | 属性/事件/方法名 | 参数类型 | 参数默认值 | 说明 |
---|---|---|---|---|
Property | font-size | [rpx pt dp px] | 12dp | 文本 size,只能是整型 |
Property | font-style | Enum | normal | normal/bold/italic/bold_italic |
Property | font-family | String | 系统默认 | 字体集 |
Property | color | color | #000000FF | 取值格式为#RGBA |
Property | text-align | Enum(可组合) | left | left/right/center |
Property | placeholder | String | 当没有文字输入时的提示文案 | |
Property | placeholder-color | color | #888888FF | |
EventHandler | bindinput | String function(Object params) | 当键盘输入时,触发input事件,params.event = {value: "文本", cursor: 1},处理函数可以直接 return 一个字符串,将替换输入框的内容。value 为事件发生时文本框的内容,cursor为光标所在的位置 | |
EventHandler | bindconfirm | Boolean function(Object params) | 点击完成按钮时触发,params.event.value 为事件发生时文本框的内容,返回 true 表示按下完成按钮时不收起键盘,返回 false 表示收起键盘,默认为 false。注,在安卓上可能受到其他特性的影响导致键盘不收起,比如当指定 confirmType 为 Next 时,会聚焦到下一个输入框,此时键盘没有收起。 | |
EventHandler | bindfocus | function(Object params) | 输入框得到输入焦点时触发,params.event.value 为事件发生时文本框的内容 | |
EventHandler | bindblur | function(Object params) | 输入框失去焦点时触发,params.event.value 为事件发生时文本框的内容 | |
Method | Integer getCursorStart() | 当前输入框的光标开始位置 | ||
Method | Integer getCursorEnd() | 当前输入框的光标结束位置 | ||
Method | String getValue() | 当前输入框的文本 | ||
Method | Boolean hasFocus() | 当前输入框是否获取了焦点 | ||
Method | void setCursorRange(Integer start, Integer end) | 设置当前输入框光标起始和结束位置 | ||
Method | void setCursorStart(Integer start) | 设置当前输入框光标起始位置 | ||
Method | void setFocus(Boolean focus) | 设置当前输入框的焦点属性 |