input

2020-02-11 18:43 更新
基礎(chǔ)庫(kù) 1.0.0 開始支持本組件。

輸入框組件,用于鍵盤交互。


屬性說明

屬性類型默認(rèn)值必填說明最低支持版本
valuestring輸入框的初始值1.0.0
typestringtextinput 的類型,詳情見下方說明1.0.0
passwordbooleanfalse是否為密碼輸入1.0.0
placeholderstring占位字符1.0.0
placeholder-stylestring占位符的樣式1.0.0
disabledbooleanfalse是否禁用1.0.0
maxlengthnumber140最大輸入長(zhǎng)度1.0.0
focusbooleanfalse獲取焦點(diǎn),詳情見下方 Tip1.0.0
cursor-spacingnumber0指定軟鍵盤彈出時(shí),與光標(biāo)的距離是多少,單位是 px1.0.0
cursornumber-1指定 focus 時(shí)的光標(biāo)位置,詳情見下方 Tip1.0.0
selection-startnumber-1指定 focus 時(shí)選中片段的起始位置,詳情見下方 Tip1.0.0
selection-endnumber-1指定 focus 時(shí)選中片段的結(jié)束位置,詳情見下方 Tip1.0.0
bindinputEventHandler鍵盤輸入時(shí)觸發(fā),詳見下方說明1.0.0
bindfocusEventHandler輸入框聚焦時(shí)觸發(fā),詳見下方說明1.0.0
bindblurEventHandler輸入框失去焦點(diǎn)時(shí)觸發(fā),詳見下方說明1.0.0
bindconfirmEventHandler用戶點(diǎn)擊鍵盤的完成按鈕時(shí)觸發(fā),詳見下方說明1.0.0

type 的有效值

說明最低支持版本
text文本輸入鍵盤1.0.0
number數(shù)字輸入鍵盤1.0.0
digit帶小數(shù)點(diǎn)的數(shù)字鍵盤1.0.0

bindinput 說明

鍵盤輸入時(shí)觸發(fā), 若返回 string 則替換 input 內(nèi)文本內(nèi)容。

event.detail.value 為輸入框內(nèi)容

event.detail.cursor 為光標(biāo)位置

bindfocus 說明

輸入框失去焦點(diǎn)時(shí)觸發(fā)

event.detail.value 為輸入框內(nèi)容

event.detail.height 為鍵盤高度

bindblur 說明

輸入框失去焦點(diǎn)時(shí)觸發(fā)

event.detail.value 為輸入框內(nèi)容

bindconfirm 說明

用戶點(diǎn)擊鍵盤的完成按鈕時(shí)觸發(fā)

event.detail.value 為輸入框內(nèi)容


效果圖


代碼示例

<view class="page-cells page-cells_after-title">
  <view class="page-cell page-cell_input">
    <input
      class="page-input"
      placeholder="這個(gè)只有在按鈕點(diǎn)擊的時(shí)候才聚焦"
      focus="{{focus}}"
    />
  </view>
</view>
<view class="btn-area">
  <button bindtap="bindButtonTap">使得輸入框獲取焦點(diǎn)</button>
</view>

<view class="page-cells page-cells_after-title">
  <view class="page-cell page-cell_input">
    <input
      class="page-input"
      placeholder="focus詳情"
      bindfocus="onfocus"
      bindconfirm="onconfirm"
    />
  </view>
</view>

<view class="btn-area">{{focusDetail}}</view>

<view class="page-cells page-cells_after-title">
  <view class="page-cell page-cell_input">
    <input class="page-input" placeholder="blur測(cè)試" bindblur="onblur" />
  </view>
</view>
Page({
  data: {
    focus: false
  },
  bindButtonTap: function(e) {
    this.setData({
      focus: true
    });
  },
  onfocus: function(e) {
    console.log(e);
    this.setData({ focusDetail: JSON.stringify(e.detail) });
  },
  onblur: function(e) {
    tt.showToast({ title: "blur" });
  },
  onconfirm: function(e) {
    tt.showToast({ title: "confirm" });
  }
});


Bug & Tip

  • Tip:避免過于頻繁地在 bindinput 回調(diào)里執(zhí)行 setData({ value: ... }),如果想在鍵盤輸入時(shí)改變 input 框的值,可以直接在 bindinput 回調(diào)里 return 一個(gè)字符串。重新設(shè)置 focus cursor selection-start selection-end 可以觸發(fā)對(duì)應(yīng)效果。 但由用戶行為導(dǎo)致的失去焦點(diǎn),選擇文字 行為不會(huì)同步更新 data。因此使用 this.setData 更新關(guān)聯(lián) data 可以理解為派發(fā)了一個(gè)事件,但是不能根據(jù) data 判斷組件當(dāng)前狀態(tài)。
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)