input

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

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


屬性說(shuō)明

屬性類型默認(rèn)值必填說(shuō)明最低支持版本
valuestring輸入框的初始值1.0.0
typestringtextinput 的類型,詳情見(jiàn)下方說(shuō)明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),詳情見(jiàn)下方 Tip1.0.0
cursor-spacingnumber0指定軟鍵盤彈出時(shí),與光標(biāo)的距離是多少,單位是 px1.0.0
cursornumber-1指定 focus 時(shí)的光標(biāo)位置,詳情見(jiàn)下方 Tip1.0.0
selection-startnumber-1指定 focus 時(shí)選中片段的起始位置,詳情見(jiàn)下方 Tip1.0.0
selection-endnumber-1指定 focus 時(shí)選中片段的結(jié)束位置,詳情見(jiàn)下方 Tip1.0.0
bindinputEventHandler鍵盤輸入時(shí)觸發(fā),詳見(jiàn)下方說(shuō)明1.0.0
bindfocusEventHandler輸入框聚焦時(shí)觸發(fā),詳見(jiàn)下方說(shuō)明1.0.0
bindblurEventHandler輸入框失去焦點(diǎn)時(shí)觸發(fā),詳見(jiàn)下方說(shuō)明1.0.0
bindconfirmEventHandler用戶點(diǎn)擊鍵盤的完成按鈕時(shí)觸發(fā),詳見(jiàn)下方說(shuō)明1.0.0

type 的有效值

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

bindinput 說(shuō)明

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

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

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

bindfocus 說(shuō)明

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

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

event.detail.height 為鍵盤高度

bindblur 說(shuō)明

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

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

bindconfirm 說(shuō)明

用戶點(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:避免過(guò)于頻繁地在 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)